C#读文本文件中的汉字出错!怎么办
StreamReader fSrd;
fSrd = File.OpenText(strFileName);
string str = fSrd.ReadLine();
Console.WriteLine("{0}",str);
将文件中的汉字换成字母或数字可以显示出来,
但是汉字打印出来,出来“? ?"之类,
请问该如何解决!
问题点数:20、回复次数:10Top
1 楼chenyf(卖女孩的小火柴)回复于 2002-08-12 12:38:13 得分 0
UTF-8编码怎么转为汉字阿Top
2 楼wanwenguo(我要睡觉)回复于 2002-08-12 13:47:00 得分 0
编码要用为GB2312Top
3 楼iamfeiyang()回复于 2002-08-12 13:52:57 得分 5
用Encoding来解决
一段我自己写的代码:
l_strTemp="";
int l_iRetval=1;
l_fStream=new FileStream(l_strFileName,FileMode.Open,FileAccess.Read);
Byte[] l_Byte=new Byte[1024];
l_Byte.Initialize();
for(;l_iRetval!=0;)
{
l_Byte.Initialize();
l_strTemp="";
l_iRetval=l_fStream.Read(l_Byte,0,1024);
l_strTemp=Encoding.Default.GetString(l_Byte,0,1024);
l_strFileContents+=l_strTemp;
}Top
4 楼wanwenguo(我要睡觉)回复于 2002-08-12 13:56:33 得分 0
用默认的编码在中文系统上肯定没问题,但是如果是英文的操作系统呢?Top
5 楼seaman_X(水手)回复于 2002-08-12 14:11:38 得分 15
我以前也碰到过这个问题,推荐使用Stream的方式打开文本文档,很方便,可以随便指定编码!
StreamReader读取文本文档,StreamWrite写文本文档。
System.Text.Unicoding.*指定编码方式。Top
6 楼chenyf(卖女孩的小火柴)回复于 2002-08-12 14:22:53 得分 0
用默认的编码确实读不出来,
直接用StreamReader好像是可以,
seaman兄:
能不能给段代码??Top
7 楼chenyf(卖女孩的小火柴)回复于 2002-08-12 14:24:17 得分 0
用什么编码呀Top
8 楼chenyf(卖女孩的小火柴)回复于 2002-08-12 14:34:49 得分 0
高定了,谢谢!
Top
9 楼xinsb([微软]小楼一夜听春雨)回复于 2002-08-12 14:47:58 得分 0
感谢您使用微软的产品。
读文本文件中的汉字出错主要是由于编码出的问题。您可以在初始化streamreader对象的时候指定它的编码,您可以参考以下如下的代码:
StreamReader fSrd= new StreamReader ("e:\\temp\\csdn.txt",Encoding.Default );
关于streamreader构造函数详细的说明,请参看:
.NET Framework Class Library StreamReader Constructor (Stream, Encoding)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemiostreamreaderclassctortopic4.asp
- 微软全球技术中心 技术支持
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。Top




