纯文本文件编码 .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参数。
- 系统休眠文件删除后果 如何删除计算机的休眠文件 2025-04-22
- 站群服务器是什么意思 站群服务器的作用 站群服务器和普通服务器的区别 2025-04-22
- jQuery插件有何作用 jQuery插件的使用方法 2025-04-22
- jQuery插件有哪些种类 简单的jQuery插件实例 2025-04-22
-