用File.ReadAllLines将文本文件读到字符串中的汉字再保存后看到的全是乱码,如何知道这个文本文件是什么码?

zcdg909 2009-05-14 12:26:11
用File.ReadAllLines将文本文件读到字符串中的汉字再保存后看到的全是乱码,如何知道这个文本文件是什么码?
...全文
1055 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
woaiwcy 2009-07-21
  • 打赏
  • 举报
回复
//读文件时设置编码方式即可消除乱码
StreamReader sr = new StreamReader(fileName, System.Text.Encoding.Default);
aight 2009-05-15
  • 打赏
  • 举报
回复

FileStream FsBatchStuInfo = new FileStream(openFileDialogBatchFile_BSILD.FileName, FileMode.Open, FileAccess.Read);
//在定义StreamReader的时候把第二个参数值设成你系统默认编码就好
StreamReader SrBatchStuInfo = new StreamReader(FsBatchStuInfo, System.Text.Encoding.Default);

希望对楼主有所帮助
Sysping1 2009-05-14
  • 打赏
  • 举报
回复
编码问题!
qldsrx 2009-05-14
  • 打赏
  • 举报
回复
汉字的话,不是GBK就是UTF8编码了,而你要是在读取或者写入的时候不指定编码,就会出现乱码。比如我用的是英文版的VS,读取写入不指定编码,中文就无法显示,我不知道中文版的VS默认是不是GBK编码,反正为了谨慎起见,都是强制指定编码名,用Default或者Ascii都可能会有问题。
tailor_ms 2009-05-14
  • 打赏
  • 举报
回复

switch (language)
{
case Language.Chinese:
writer = new StreamWriter(strFileName, false, Encoding.GetEncoding("gb2312"));
break;

case Language.English:
info = new FileInfo(strFileName);
writer = info.CreateText();
break;

case Language.Japanese:
writer = new StreamWriter(strFileName, false, Encoding.GetEncoding("shift-jis"));
break;

default:
writer = new FileInfo(strFileName).CreateText();
break;
}

110,547

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧