为什么在写入txt文件时,汉字会变成乱码?

时间:2021-08-15 07:30:54
代码如下:
                byte[] mybyte;
                int size;
FileStream fs=new FileStream(filestr,FileMode.Create);  
         str="汉字,dkfjdkfj,dfsdferer"
mybyte=System.Text.Encoding.ASCII.GetBytes(str); size=(int)mybyte.Length;  //记录字符长度
         fs.Write(mybyte,0,size);   //写入文件流
fs.Flush();    //强制清空缓冲区,

生成的txt内容变成  ????,dkfjdkfj,dfsdferer
请问改如何解决?

11 个解决方案

#1


使用中文编码:
mybyte=System.Text.Encoding.GetEncoding("gb2312").GetBytes(str);

#2


怎么能用ASCII呢,楼上的方法对!

#3


编码问题!!!

#4


米花果然是高手!

#5


果然,是星星!

#6


是编码问题,.net 的默认编码是UTF8,在处理汉字的时可能会出现乱码,输出的时候转成“gb2312"

#7


我在ibm的一个人写大书上看到:utf-8不支持汉字

#8


StreamWriter sw = new StreamWriter(cFullName,false,System.Text.Encoding.GetEncoding("GB2312") );
第三个参数,你调用System.Text.看看

#9


string message = System.Text.Encoding.BigEndianUnicode.GetString(mybyte);

#10


Encoding 设为gb2312

#11


gz

#1


使用中文编码:
mybyte=System.Text.Encoding.GetEncoding("gb2312").GetBytes(str);

#2


怎么能用ASCII呢,楼上的方法对!

#3


编码问题!!!

#4


米花果然是高手!

#5


果然,是星星!

#6


是编码问题,.net 的默认编码是UTF8,在处理汉字的时可能会出现乱码,输出的时候转成“gb2312"

#7


我在ibm的一个人写大书上看到:utf-8不支持汉字

#8


StreamWriter sw = new StreamWriter(cFullName,false,System.Text.Encoding.GetEncoding("GB2312") );
第三个参数,你调用System.Text.看看

#9


string message = System.Text.Encoding.BigEndianUnicode.GetString(mybyte);

#10


Encoding 设为gb2312

#11


gz