`
yangguangfu
  • 浏览: 1539660 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

判断文件编码

阅读更多
/**
	 * 判断文件编码
	 * @param file 文件
	 * @return 编码:GBK,UTF-8,UTF-16LE
	 */
	public String getCharset(File file) {
		String charset = "GBK";
		byte[] first3Bytes = new byte[3];
		try {
			boolean checked = false;
			BufferedInputStream bis = new BufferedInputStream(
					new FileInputStream(file));
			bis.mark(0);
			int read = bis.read(first3Bytes, 0, 3);
			if (read == -1)
				return charset;
			if (first3Bytes[0] == (byte) 0xFF && first3Bytes[1] == (byte) 0xFE) {
				charset = "UTF-16LE";
				checked = true;
			} else if (first3Bytes[0] == (byte) 0xFE
					&& first3Bytes[1] == (byte) 0xFF) {
				charset = "UTF-16BE";
				checked = true;
			} else if (first3Bytes[0] == (byte) 0xEF
					&& first3Bytes[1] == (byte) 0xBB
					&& first3Bytes[2] == (byte) 0xBF) {
				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)
						break;
					if (0xC0 <= read && read <= 0xDF) {
						read = bis.read();
						if (0x80 <= read && read <= 0xBF)
							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;
					}
				}
			}
			bis.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return charset;
	}

 

1
1
分享到:
评论

相关推荐

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

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

    java判断文件编码

    在Java编程中,判断文件编码是一项重要的任务,尤其是在处理用户上传的文件或处理不同系统间的文件传输时。本文将深入探讨如何使用Java进行文件编码的检测,并基于提供的资源——`cpdetector_1.0.5.jar`、`chardet....

    Java判断文件的编码

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

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

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

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

    总的来说,`cpdetector_1.0.10.jar`是Java开发中的一个实用工具,它提供了高效且准确的文件编码检测功能,帮助开发者更好地处理文本数据,避免因编码问题而引发的程序异常。通过理解并熟练使用这类工具,可以提升...

    判断文件编码格式和批量将gbk转为utf-8

    标题"判断文件编码格式和批量将gbk转为utf-8"涉及两个主要知识点: 1. **文件编码识别**:判断文件编码格式通常是为了确保正确读取和处理文件内容。这可以通过各种工具或编程库实现。例如,Python中的`chardet`库...

    文件操作工具类,包含判断文件编码适合windows和linux,文件压缩打包,判断文件格式,拷贝文件等内容

    文件操作工具类,包含判断文件编码适合windows和linux,文件压缩打包,判断文件格式,拷贝文件等内容

    判断字符编码格式代码

    - **文件处理**:读取外部文件时,需要判断文件的编码格式以正确解析内容。 - **多语言支持**:在开发国际化应用时,根据不同语言环境动态选择合适的编码格式。 通过以上分析,我们不仅了解了字符编码的基本概念...

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

    以下将详细介绍如何在Java中进行文件编码的判断。 首先,基本的判断方法是通过读取文件的前三个字节来识别编码格式。ASCII码文本通常不涉及这个问题,因为ASCII只包含128个字符,可以用单字节表示。但对于非ASCII...

    JScript中使用ADODB.Stream判断文件编码的代码

    在JScript中判断文件编码主要涉及到使用ADODB.Stream对象来处理文件的二进制数据。在VBS(Visual Basic Script)中,我们通常可以通过ASC函数等手段来判断文件的编码,但在JScript中由于没有这些函数,所以需要采取...

    python中判断文件编码的chardet(实例讲解)

    ### Python中判断文件编码的Chardet库详解 #### 一、引言 在处理文本文件时,经常会遇到不同编码格式的文件。Python提供了一种简单有效的方式来检测这些文件的编码格式,即通过使用`chardet`库。本文将详细介绍...

    判断文件是否为utf-8的编码格式

    一个判断文件为utf-8的java类,自己用有限状态机实现的,很好用的。

    C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)

    以下是获取文件编码的一个类: using System; using System.IO; using System.Text; /// /// FileEncoding 的摘要说明 /// namespace FileEncoding { /// /// 获取文件的编码格式 /// public class Encoding...

    java判断编码方式

    总之,Java中判断文件编码的方式多样,可以根据具体场景选择合适的方法。需要注意的是,这些方法都有其局限性,特别是对于没有BOM且包含混合字符集的文件,可能会比较困难。因此,最好的实践是在创建文件或数据时就...

    C# 编码自动识别 匹配文件当前编码格式

    为了自动识别文件的编码格式,我们需要编写一个程序,它能够读取文件的前几个字节(通常为2或4个字节),然后根据这些字节的值来判断可能的编码。这个过程称为"字节顺序标记"(BOM)检测,或者对于无BOM的编码,通过...

    javascript 判断是否GBK编码

    在JavaScript中,判断一个字符串是否属于GBK编码是一个常见的需求,特别是在处理中文字符集时。GBK是GB2312的扩展,包含了更多的汉字和其他字符,是Windows系统中广泛使用的中文编码标准。本篇将深入探讨如何通过...

    获取文件编码格式与文件转码

    在IT行业中,尤其是在Android开发中,处理文件编码格式与文件转码是常见的任务。编码格式决定了文本文件中字符的表示方式,不同的编码如ASCII、UTF-8、GBK等有着不同的规则。了解并能够正确处理文件编码对于确保程序...

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

    本文将详细介绍如何在Java中获取文件的编码并判断文件是否带有BOM。 首先,让我们了解一下什么是BOM。BOM是UTF-8、UTF-16和UTF-32等编码格式中的一个可选标记,用于告知解析器文件的编码类型。例如,UTF-8的BOM是三...

    java文件字符编码集判断依赖.zip

    通用的文件字符编码集判断需要借助第三方包...使用Cpdetector jar包检测文件编码需要依赖antlr-2.7.7.jar、chardet-1.0.jar、jargs-1.0.jar三个jar包 本下载资源一站式全包含,并附带亲测有效的片段代码供测试~~

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

    本文将深入探讨如何读取和创建CSV文件,并特别关注自动解析文件编码方式这一关键环节。我们将使用Java语言进行示例,同时引入第三方库来辅助处理编码问题。 首先,创建CSV文件的基本过程涉及将数据写入具有特定分隔...

Global site tag (gtag.js) - Google Analytics