昨天下午写代码,需要生成一个XML文件,以取代原来那种HTML的碎片方式。但是写出来的文件用浏览器打开后都是乱码。我已经在XML的最前面加上了
<?xml version="1.0" encoding="UTF-8"?>
而且浏览器的编码也是UTF-8的,这就排除了浏览器的问题。
再用VIM打开,发现用GB2312看是没问题的,换成:set encoding=UTF-8以后开始乱码
这时我尝试将字符串转码后写入文件,但在UTF-8,GBK和ISO8859_1中间怎么转也没有用。
忽然想起前几天yiyayoyo同学和我提过Java写文件默认编码的问题,于是开始google,发现我用的写文件的方式无法指定编码,于是换用另一种写文件的方式指定UTF-8,遂搞定。代码如下:
老代码:
PrintWriter pw = new PrintWriter(new FileWriter(path));
<?xml version="1.0" encoding="UTF-8"?>
而且浏览器的编码也是UTF-8的,这就排除了浏览器的问题。
再用VIM打开,发现用GB2312看是没问题的,换成:set encoding=UTF-8以后开始乱码
这时我尝试将字符串转码后写入文件,但在UTF-8,GBK和ISO8859_1中间怎么转也没有用。
忽然想起前几天yiyayoyo同学和我提过Java写文件默认编码的问题,于是开始google,发现我用的写文件的方式无法指定编码,于是换用另一种写文件的方式指定UTF-8,遂搞定。代码如下:
老代码:
PrintWriter pw = new PrintWriter(new FileWriter(path));
Tags: UTF-8
用Eclipse在项目中加入一个文件,里面输入有中文字符,在保存时提示:
“未能完成保存 ,原因: 使用'iso-8859-1'字符编码时,无法映射某些字符 更改编码时,或者除去'iso-8859-1'字符编码不支持的字符。”
如果是jsp文件的话可以直接在头行内容当中添加pageEncoding=“gb2312”解决此问题,如果你在项目中添加的文件非jsp文件,一个解决此问题的简单有效的办法是:
1.把你的文件内容(带中文的)考到一个txt文件中(如a.txt)
2.打开cmd控制台,用命令native2ascii转换,命令格式为: native2ascii a.txt b.txt
3.把b.txt的内容考回到文件就可以使用了
“未能完成保存 ,原因: 使用'iso-8859-1'字符编码时,无法映射某些字符 更改编码时,或者除去'iso-8859-1'字符编码不支持的字符。”
如果是jsp文件的话可以直接在头行内容当中添加pageEncoding=“gb2312”解决此问题,如果你在项目中添加的文件非jsp文件,一个解决此问题的简单有效的办法是:
1.把你的文件内容(带中文的)考到一个txt文件中(如a.txt)
2.打开cmd控制台,用命令native2ascii转换,命令格式为: native2ascii a.txt b.txt
3.把b.txt的内容考回到文件就可以使用了
Tags: 编码