StreamReader读中文字节流的问题,我知道Encoding.Default。50分!
利用StreamReader遇到中文会出现乱码,几乎所有有点经验的都会说利用Encoding.Default,或者Encoding.GetEncoding("gb2312")……这个我也知道。不过其实问题的关键并不在于此,比如在视窗系统下创建一个txt文件,里面输入中文,你利用StreamReader怎么读都是乱码。
不过你只需要把txt文件做“另存为”操作,然后修改“编码”类型为UTF,“确定”后再操作就万事大吉了。这时候你是否制定Encoding.Default什么的都没有关系,绝对没有乱码。
当然,如果你是利用程序创建txt文件,并直接指定其编码方式为UTF也是一样的。
对于编码我也找了些资料,有一个说法是这样的“从ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。而Unicode只与ASCII兼容”,(而UTF即是Unicode的一种)是不是意味着Unicode不对GB2312兼容呢??
但是一些文本编辑器是可以对GB2312编码的文件转换为UTF。
我的问题就是:面对大量文件,无法一一手工修改编码方式,如何利用程序读出正确的中文内容????
请高手不吝赐教,50分送上!!!
问题点数:50、回复次数:3Top
1 楼jasonpower(新丁)回复于 2006-03-15 13:49:48 得分 0
就没有人指点一下么?Top
2 楼dolfen(网海之豚(每天进步一点点))回复于 2006-03-15 14:45:44 得分 50
奇怪,我用记事本保存一个文件,再用StreamReader读出来,怎么就不会乱码呢?
你这样试试:
StreamReader sr=new StreamReader("c:\\test.txt",Encoding.Default);
textBox1.Text=sr.ReadToEnd();
Top
3 楼jasonpower(新丁)回复于 2006-03-16 15:22:04 得分 0
失败,我发现我中间画蛇添足多加了一行代码。
第一次照葫芦画瓢,不太明白什么意思,时间长了也一直沿用没有多做分析!!
不管怎么说,分数送上!!谢谢Top




