工作需要必须创建UTF-16格式的文件.这几天在网络上找,似乎没有此类话题,无论是国外还是国内.
代码:
OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream(new File("c:\\2.csv")), "UTF-16");
fos.write("你好");
fos.flush();
fos.close();生成文件之后,我在windows平台打开.使用editeplus是乱码.使用记事本打开不乱码,保存时察看文件编码确是unicode big endian. 使用写字板打开时乱码. 使用excel打开仍然乱码.我不过,使用下面代码,就可以顺利创建UTF-8的文件.
OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream(new File("c:\\2.csv")), "UTF-8");
fos.write("你好");
fos.flush();
fos.close();
哪位碰到过这个问题.帮忙看看..
代码:
OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream(new File("c:\\2.csv")), "UTF-16");
fos.write("你好");
fos.flush();
fos.close();生成文件之后,我在windows平台打开.使用editeplus是乱码.使用记事本打开不乱码,保存时察看文件编码确是unicode big endian. 使用写字板打开时乱码. 使用excel打开仍然乱码.我不过,使用下面代码,就可以顺利创建UTF-8的文件.
OutputStreamWriter fos = new OutputStreamWriter(new FileOutputStream(new File("c:\\2.csv")), "UTF-8");
fos.write("你好");
fos.flush();
fos.close();
哪位碰到过这个问题.帮忙看看..
而且,我已经使用eclipse建立了一个文件,修改成UTF-16,再用windows打开同样存在这样的问题.
另外,是否就不应该使用 writer?虽然它包了一个stream。
UTF-16是以16位来存储一个字符
也就是我们通常意义上的UNICODE
LINUX默认字符集好像是UNICODE
所以显示没问题 但是WINDOWS默认的字符集好像就有问题了。