文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>纯文本文件编码 .NET解决方案

纯文本文件编码 .NET解决方案

时间:2010-11-27  来源:董超

在使用.NET类库读写文本文件需要注意一条适应于大多情况的准则:

File.ReadAllText和File.WriteAllText都调用有Encoding参数的重载。

先来说一下我的目的,即用File.ReadAllText的时候尽可能不读出乱码。这要从ReadAllText和WriteAllText两方面去限制。

 

先说ReadAllText

File.ReadAllText使用Encoding.Default可以正确解析出Windows记事本可以保持的全部4种纯文本格式:ANSI, Unicode, Unicode Big Endian和UTF-8。
若File.ReadAllText使用不带Encoding的重载,无法正确解析出ANSI编码的纯文本文件来。

 

再说WriteAllText

File.WriteAllText不使用Encoding参数会将不带BOM的UTF-8编码写入文件。用同样不带Encoding参数的ReadAllText可以正确读出,但如上文建议的用带Encoding.Default参数的ReadAllText反而会读出乱码。因此,建议调用WriteAllText的时候带上Encoding.UTF8参数(因为在Unicode中UTF8是相对占用空间少的)。

 

总结一下:

如果能控制读和写,最好能统一编码方式,并显式写在代码中。

如果只能控制读,ReadAllText使用Encoding.Default参数。

如果智能控制写,WriteAllText使用Encoding.UTF8参数。

相关阅读 更多 +
排行榜 更多 +
夕鸟

夕鸟

生活实用 下载
partyplay

partyplay

聊天通讯 下载
婚礼纪

婚礼纪

生活实用 下载