首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java读带有BOM的UTF-8文件乱码原因及解决办法

2012-09-08 
Java读带有BOM的UTF-8文件乱码原因及解决方法最近在处理文件时发现了同样类型的文件使用的编码可能是不同

Java读带有BOM的UTF-8文件乱码原因及解决方法

最近在处理文件时发现了同样类型的文件使用的编码可能是不同的。所以想将文件的格式统一一下(因为UTF-8的通用性,决定往UTF-8统一),遇见的第一个问题是:如何查看现有文件的编码方式。

上网找了一下,找到几篇比较好文章,这里就不转载啦把链接搞过来。
文件编码问题集锦?
字符串编码(charset,encoding,decoding)问题原理?
Java编码浅析?
判定文件编码或文本流编码的方法?
上面的几篇文章可以看成认识编码问题的“从入门到精通”

如果你看完了上面的文章,一定了解到了,在java中,class文件采用utf8的编码方式,JVM运行时采用utf16。Java的字符串是永远都是unicode的,采用的是UTF-16的编码方式。

想测试一下,java对UTF-8文件的读写的能力,结果发现了一个很郁闷的问题,如果通过java写的UTF-8文件,使用Java可以正确的读,但是如果用记事本将相同的内容使用UTF-8格式保存,则在使用程序读取是会从文件中多读出一个不可见字符。
测试代码如下:

        new?UnicodeReader(in,?Charset.defaultCharset().name()));??


      执行,可以看到正确的结果。

      ?

      引自:?http://daimojingdeyu.iteye.com/blog/397661

热点排行