为什么我的writefile写入文件的数据是乱码
1个回答
展开全部
这个不是你程序的问题,是Windows记事本的Bug,因为程序输出的某些字符触发了这个bug,记事本把文件当成unicode编码处理,结果乱码。
把这句
ofile<<a[i]<<" ";
换了一下顺序改成
ofile<<" "<<a[i];
就不会乱码了。
记事本这样的bug很多,
比如记事本新建一个文本,打开以后输入:联通 这两个字, 保存 ,关闭记事本。 再打开,你看看变成什么了?
有一个开玩笑的说法是因为中国联通把微软中国得罪了……
记事本保存的时候,默认使用ansi编码
但是用ansi编码呢,联通这两个字的开头正好是:fffe..... 这样的,于是再打开呢,他就以为是utf-8编码了,但是按照utf-8来解码呢,却造成乱码了
把这句
ofile<<a[i]<<" ";
换了一下顺序改成
ofile<<" "<<a[i];
就不会乱码了。
记事本这样的bug很多,
比如记事本新建一个文本,打开以后输入:联通 这两个字, 保存 ,关闭记事本。 再打开,你看看变成什么了?
有一个开玩笑的说法是因为中国联通把微软中国得罪了……
记事本保存的时候,默认使用ansi编码
但是用ansi编码呢,联通这两个字的开头正好是:fffe..... 这样的,于是再打开呢,他就以为是utf-8编码了,但是按照utf-8来解码呢,却造成乱码了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询