c# 如何解决读取有中文内容文件有乱码

FileStream fsSource = new FileStream(SourceFilepath, FileMode.Open);
StreamReader srSource = new StreamReader(fsSource, Encoding.GetEncoding("gb2312"));
srSource.BaseStream.Seek(0, SeekOrigin.Begin);//定位到文件开始
s1 = srSource.ReadLine()

读取到中文时候,出现乱码,该怎么解决?

第1个回答  推荐于2016-01-16
文件以什么格式保存的就必须以什么格式打开。不然就会是乱码。
如果仅假设文件以unicdoe或是当前字符编码保存(一般来说就是中文了),那可以看一下mingjin654321给你的方案。还有一些在此基础上扩展的方案。
如果你需要使用的是多国语言,那么还有两个方案。一个是微软提供了检测字符编码的接口IMultiLanguage3有人使用c#做了移植,还有Mozilla 有一个项目叫Universal Charset Detector也是对检测字符编码的组件,也有人使用C#做了移植。你可以查查看。本回答被提问者和网友采纳
第2个回答  2013-06-06
GetEncoding("gb2312")换成Default什么的试试追问

试过了,也不行,怎么办捏?

追答

那就看看你的那个文件到底是什么格式的,这个除非你是进行文件格式判断否则没有办法

第3个回答  2013-06-06
windows txt 默认是ANSI 用它就对了追问

我测试了,用Encoding.UTF8可以,但是读取其他txt的时候中文乱码又出现

追答

http://www.cnblogs.com/litianfei/archive/2008/04/01/1133122.html 试试这里的东西

如何有效的使用C#读取文件 及如何解决中文乱码问题
选择编码方式。两边的编码方式不一致,就会乱码。Encoding.Default Encoding.UTF8 Encoding.ANSI Encoding.Unicode 你打开txt文本,另存为 。可看到该txt的编码方式,你也可以改了编码方式,保存再来读取试试。

c#socket程序,中文乱码情况
进行字节序转换处理:在跨平台通信时,注意字节序问题,并进行必要的转换处理。此外,对于接收到的数据,可以使用C#中的相关编码类进行解码和编码操作,确保字符的正确转换。在处理乱码问题时,关键是要识别并理解问题的根源,然后采取适当的措施来解决它。

c#程序保存到文本文档里的汉子总是出现乱码
你的编码方式不对,用Stream时,指定特定的编码格式

C#中使用utf-8读取文本文件是乱码?如何解决
很可能是你的文件是其它的编码,希望不出现乱码,很简单,将编码指向为默认的就行,如:Encoding code = Encoding.Default;而不要使用Encoding code = Encoding.GetEncoding("utf-8");祝你好运

C#读取文件到textbox时出现中文乱码
是编码不匹配导致的乱码。有两种解决方法。1)将文本文件保存为UTF8编码 这时,使用以下语句读取文本文件 \/\/ ReadAllLines方法默认采用UTF8编码string[] lines = File.ReadAllLines(filePaht);2)将文本文件保存为ANSI编码(这是Windows文本文件默认的编码)这时,使用以下语句 \/\/ 与ANSI编码对应的编码为GB...

C# 读ini文件读出来的是乱码 怎么解决
<globalization requestEncoding="GB2312"responseEncoding="GB2312"fileEncoding="GB2312"\/> 你看一下有没有类似于以上设置,出现乱码是因为你读取文件的编码设置和你读取文件编码设置不一样 例如,上边是我在。net中设置的,他读取文件采用gb2312,如果你的文件使用utf-8的话,读出来就是乱码 ...

C#怎么读取TXT文件内容(有乱码)?
如果是TXT文件,把这个TXT文件另存为,然后在选择编码方式为 unicode .默认的是ANST,这种编码方式.

C#读取txt 文件内容的时候总出现乱码代码如下
label1.Text = System.Text.Encoding.ASCII.GetString(bb);您只需要将此处改正为DEFAULT即可 System.Text.Encoding.DEFAULT.GetString(bb);

C# 读ini文件读出来的是乱码 怎么解决
你要保证ini文件的文本格式是UTF-8(U8)(用UE打开这个文件,最下边有显示)如果不是"U8-XXX" 就点文件-另存为 还是这个文件 覆盖 在 格式 中选择UTF-8 保存 然后读取的时候要按照UTF8的方式读取!

在C#中,打开一个文件,有时是乱码,有时能显示英文可汉字是乱码。如先...
test.txt建议使用gb2312的格式保存,或是UTF-8.那么你读取的时候也要相同的编码格式就OK了

相似回答