黑马程序员技术交流社区
标题:
为什么字符串中有中文,以字节形式写到文件中,却没有...
[打印本页]
作者:
三生石
时间:
2014-3-1 16:30
标题:
为什么字符串中有中文,以字节形式写到文件中,却没有...
程序如下:
import java.io.*;
class FileOutputTest
{
public static void main(String[] args) throws Exception
{
FileOutputStream fos=new FileOutputStream("d:\\FileOutput.txt");
String msg="三生石_Sknishy";
fos.write(msg.getBytes());
fos.close();
}
}
为什么字符串中有中文,以字节形式写到文件中,却没有乱码?求教……
作者:
volvoxc
时间:
2014-3-1 16:43
getBytes方法使用了平台默认的字符集,将字符串编码为byte字节。用软件打开文件时,例如记事本,也会使用默认的字符集进行解码,所以,没有乱码啊。
作者:
平凡成就非凡
时间:
2014-3-1 18:36
乱码的由来,1是因为在编码和解码的过程用的是不同的编码表而造成的。2也有的是在文件数据的输入输出时,造成字节的获取不足。例如,当我们用以byte[] buf=new byte[5];长度为5的字节数组,来作为缓冲存取以段数据“你们好啊”并打印,存取到“好”这个字我们才存到啦半个。也会出现乱码。3说个特例,“联通”这个词的,二进制表示时,即符合GBK码表也符合UTF-8码表。所以也会出现乱码。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2