日期:2014-05-18  浏览次数:20788 次

请问这样的乱码问题如何解决?
我在使用C#编写读写文件的时候,发现读取出来的内容里只要是中文的部分都成了"?????"的了而数字和字母却是正常
请问如何解决这样的问题,请高手指点.
我读取的文件是MARC数据格式(*.iso),我用计事本打开这个文件,都能正常显示中文,为什么我用C#编写的读取程序读出来的内容不能正常显示中文?

------解决方案--------------------
你的C#默认应该是设成了UTF-8了。
------解决方案--------------------
看下你的文件的编码,读写的时候,保持编码一致就可以了
------解决方案--------------------
那么楼主是否清楚System.Text.Encoding.Default的意义以及作用呢

如果这里需要替换为确定的编码又该如何做呢


参考下MSDN的说明吧,另外把
System.Text.Encoding.Default
替换为
Encoding.GetEncoding("gb2312")
看下效果,这会有助于你理解
------解决方案--------------------
在传值时候:

Server.UrlEncode(汉语部分);

如:Response.Redirect("abc.aspx?Name=" + Server.UrlEncode(Name));

这样传过去的汉语形式的 Name 就不是乱码了
------解决方案--------------------
简体中文一般采用的格式为GB2312的,而C#默认的是UTF-8的,不光在读文件的时候需要注意,在写文件的时候也应该注意一下你的编码方式

------解决方案--------------------
StreamReader的构造器还有别的类型,好好看看,有自动识别编码的一个。