`
hwpok
  • 浏览: 251610 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 判断文本文件编码

    博客分类:
  • Java
阅读更多
package com.roadway.edmail.util;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;

public class FileEncodeReferee
{
    
private File file;
    
    
public FileEncodeReferee(File file)
    
{
        
this.file = file;
    }

    
    
public FileEncodeReferee(String path)
    
{
        file 
= new File(path);
    }

    
    
public String getCharset()
    
{
        File file 
= this.file;
        
        String charset 
= "GBK";
        
byte[] first3Bytes = new byte[3];
        BufferedInputStream bis 
= null;
        
try
        
{
            
//boolean checked = false;
            bis = new BufferedInputStream(new FileInputStream(file));
            bis.mark(
0);
            
int read = bis.read(first3Bytes, 03);
            
if (read == -1)
            
{
                
return charset;
            }

            
if (first3Bytes[0== (byte0xFF && first3Bytes[1== (byte0xFE)
            
{
                charset 
= "UTF-16LE";
                
//checked = true;
            }

            
else if (first3Bytes[0== (byte0xFE
                    
&& first3Bytes[1== (byte0xFF)
            
{
                charset 
= "UTF-16BE";
                
//checked = true;
            }

            
else if (first3Bytes[0== (byte0xEF
                    
&& first3Bytes[1== (byte0xBB
                    
&& first3Bytes[2== (byte0xBF)
            
{
                charset 
= "UTF-8";
                
//checked = true;
            }

            
/** *//*******************************************************************
             * bis.reset(); if (!checked) { int loc = 0; while ((read =
             * bis.read()) != -1) { loc++; if (read >= 0xF0) { break; } if (0x80 <=
             * read && read <= 0xBF) // 单独出现BF以下的,也算是GBK { break; } if (0xC0 <=
             * read && read <= 0xDF) { read = bis.read(); if (0x80 <= read &&
             * read <= 0xBF)// 双字节 (0xC0 - 0xDF) { // (0x80 - 0xBF),也可能在GB编码内
             * continue; } else { break; } } else if (0xE0 <= read && read <=
             * 0xEF) { // 也有可能出错,但是几率较小 read = bis.read(); if (0x80 <= read &&
             * read <= 0xBF) { read = bis.read(); if (0x80 <= read && read <=
             * 0xBF) { charset = "UTF-8"; break; } else { break; } } else {
             * break; } } } System.out.println(loc + " " +
             * Integer.toHexString(read)); }
             *****************************************************************
*/

        }

        
catch (Exception e)
        
{
            e.printStackTrace();
        }

        
finally
        
{
            
if (bis != null)
            
{
                
try
                
{
                    bis.close();
                }

                
catch (Exception ex)
                
{
                    ex.printStackTrace();
                }

            }

        }

        
return charset;
    }

    
    
public static void main(String[] args)
    
{
        FileEncodeReferee fer 
= new FileEncodeReferee("E://Huha.csv");
        System.out.println(fer.getCharset());
    }

}
分享到:
评论
1 楼 灵程大哥 2011-03-02  
先试一下,看行不行

相关推荐

    Java判断文件编码格式 - 明明是悟空 - 博客园1

    在Java编程中,判断文件编码格式是一项常见的任务,特别是在处理包含多国语言或者用户自定义内容的文件时。本文将探讨如何使用Java进行文件编码格式的识别,主要介绍两种方法:一种是简单的UTF-8判断,另一种是使用...

    Java判断文本文件编码格式以及读取

    如果很多时候我们没有约定好文件格式,我们就难以读取文件内容,此时,我们就需要一个工具来探测所读文本的编码格式,此工具可以允许用户读取诸如utf-8,gbk,gb2312一类的文件格式。内置了一些常用的探测实现类,...

    Java判断文件的编码

    ### Java判断文件编码的方法 在Java开发中,经常会遇到需要处理不同编码格式的文件的情况。为了确保程序能够正确解析文件内容,必须先判断文件的编码格式。本文将详细介绍如何使用Java来判断文件是否为UTF-8或GBK...

    java判断文件编码或文本流编码的方法宣贯.pdf

    前者适用于有限的编码格式,后者则提供了更全面的解决方案,适用于各种场景,尤其是处理用户上传或不可控来源的文本文件时。在实际开发中,可以根据项目需求选择合适的方法来确定文件的编码格式。

    java获取文件编码(判断有无BOM)

    在Java编程中,处理文件编码是一项常见的任务,特别是在读取、写入或转换文本文件时。文件编码决定了字符集的表示方式,而BOM(Byte Order Mark)则是一种特殊的Unicode标记,用于标识文件的编码类型。本文将详细...

    java程序判断文件编码的类型

    本文档旨在教导读者如何通过Java编程语言来判断文件的编码类型。这包括常见的编码格式如GBK、UTF-8等。了解文件编码对于处理多语言环境下的文本数据至关重要。 #### 详细知识点解析 ##### 文件编码类型简介 文件...

    java判断文件编码格式 三方工具包 cpdetector_1.0.10.jar

    Java编程语言在处理文本文件时,常常需要确定文件的字符编码格式,以便正确地读取和解析文件内容。`cpdetector_1.0.10.jar` 是一个第三方工具包,专为Java开发者设计,用于检测文件的编码类型。这个工具包能够帮助...

    判断文本文件是否为UTF-8编码

    本资源主要关注如何判断一个文本文件是否采用UTF-8编码。 在Windows系统中,比如Windows 7旗舰版,我们经常使用Notepad.exe(记事本)来查看和编辑文本文件。在编程环境中,有时候我们需要编写代码来检查文件的编码...

    读取创建CSV文件并自动解析文件编码方式

    首先,创建CSV文件的基本过程涉及将数据写入具有特定分隔符(通常是逗号)的文本文件中。在Java中,我们可以使用内置的`java.io`或Apache Commons CSV库来实现。Apache Commons CSV提供了一套强大的API,能够轻松...

    java 获取文件编码

    在Java编程语言中,获取文件编码是一个常见的任务,特别是在处理文本文件时,了解正确的编码格式至关重要,因为不同的编码方式会影响字符的表示和解析。本文将深入探讨如何在Java中识别和处理不同类型的文本编码,如...

    Java读取TXT文本文件乱码解决方案.doc

    本文提供了 Java 读取 TXT 文本文件乱码解决方案,并讨论了 TXT 文件的编码格式和获取编码格式的方法。 知识点: * Java 读取 TXT 文本文件时可能出现乱码的问题 *乱码的问题是由于文件的编码格式引起的 * 使用 ...

    java识别文件编码格式

    在Java编程语言中,识别文件编码格式是一项重要的任务,特别是在处理不同来源的文本文件时。在没有第三方JAR包的情况下,我们通常需要依赖Java内置的API来实现这一功能。以下是一些关键知识点: 1. **字符编码**:...

    Java自动识别文件字符编码工具类.rar

    Java自动识别文件字符编码工具类 参考博客 https://blog.csdn.net/superbeyone/article/details/103036914 使用方式: String encode = EncodingDetect.getFileEncode(geoJsonFile); log.info("系统检测到文件[ {}...

    Java判定文件编码或文本流编码的方法[文].pdf

    通过使用cpdetector库,开发者可以更准确地判断各种未知编码的文本文件,提高了程序的兼容性和健壮性。 总的来说,Java中判断文件编码的方法包括简单的字节匹配和使用第三方库进行智能检测。在实际开发中,根据项目...

    java使用jchardet检测文本文件(字节流)的编码方式

    NULL 博文链接:https://zhifeiji512.iteye.com/blog/1221068

    Java 自动识别编码

    "Java 自动识别编码"这个主题涉及到的是Java编程语言如何自动检测文本文件或数据流的字符编码方式,以便正确地读取和解析其中的内容。下面将详细探讨这个知识点。 首先,Java中的`Charset`类是处理字符编码的基础,...

    UTF-8或者GBK文本格式判断

    Recognize类判定指定文本文件为UTF-8还是GBK编码格式。

    批量编码转化工具(实现文件编码的自动检测)

    而统计字符频率和比较编码表则是通过分析文件中的字符出现的频率,与已知编码的字符频率分布进行对比,以判断最可能的编码类型。 3. 批量编码转换的实现: 这个工具首先遍历指定的文件或文件夹,对每个文件应用...

    java判断一个文件是否为二进制文件的方法

    二进制文件与文本文件的主要区别在于它们的数据存储方式:二进制文件通常包含非打印字符,如图像、音频、视频等非文本数据,而文本文件则由可读的字符组成,如ASCII或Unicode编码的字符。 上述代码提供了一个简单的...

Global site tag (gtag.js) - Google Analytics