A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李贤贤 中级黑马   /  2013-3-9 23:40  /  1587 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李贤贤 于 2013-3-10 10:45 编辑

用StreamReader读取文件中的中文文本,有时会产生乱码问题。这是怎么回事?是C#语言有问题吗??

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

4 个回复

倒序浏览
创建一个Windows控制台程序StreamReaderDemo。其中主函数代码如下。注意添加System.IO引用。
static void Main(string[] args)
{
       try
       {
             StreamReader m_sr = new StreamReader(@"c:\file.txt");
             string m_data = m_sr.ReadToEnd();
             Console.WriteLine(m_data);
             m_sr.Close();
       }
       catch (IOException ex)
       {
             Console.WriteLine(ex);
             return;
       }

       Console.WriteLine("Write to File Succeed!");
}

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
用StreamReader读取文件中的中文文本时,你要指定文件编码,好像他默认为utf-8,因为操作系统默认编码为ANSI,所以导致你编码不同读出乱码。。。
要知道自己的文本是什么编码点击该文本另存为下面有编码可以看到。。。。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
黑马-杨鹏立 发表于 2013-3-10 09:27
用StreamReader读取文件中的中文文本时,你要指定文件编码,好像他默认为utf-8,因为操作系统默认编码为ANSI ...

支持你的说法
回复 使用道具 举报
谢谢了!问题解决了。我是通过Encoding类的静态成员指定编码格式的。Encoding.UTF8,获取格式的编码;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马