java 输入输出乱码问题
大家看一下这段代码,打开被写入的文件如下图,"博客园"乱码我是懂的,我的问题是:为什么HELLO还能正常显示?
FileOutputStream outStream = new FileOutputStream("D:"+File.separator+"test"+File.separator+"hello.txt");
OutputStreamWriter outWriter = new OutputStreamWriter(outStream,"ASCII");
BufferedWriter writer = new BufferedWriter(outWriter);
writer.write("HEllO博客园");
writer.close();
------解决方案--------------------ASCII---改成UTF-8试下或者GBK也可以
------解决方案--------------------HEllO ASCII码里有这些,所以才不会乱码
------解决方案--------------------所有的编码都是以ASCII为基础的。除了Unicode以外,其它编码的单字节码0x00-0x7F都和ASCII一致。
也就是说:
HEllo不管在GB2312、GBK、BIG5、UTF8……哪一种编译下面都是
0x48456c6c6f
PS:Unicode与其它变长码不同,它是定长的(2Byte)。例如"AB"在其它编译里是
0x4142
在Unicode里是
0x00410042
------解决方案--------------------hello不管你是ISO的还是utf-8亦或gbk都不会乱码的,他总能被正确识别的
------解决方案--------------------
------解决方案--------------------