如何通过代码更改文本文件编码?我正在使用此代码实际创建文件本身,但如何更改编码(更改为UTF-8无BOM)
string path = @"E:\Test\Example.txt";
if (!File.Exists(path))
{
File.Create(path);
}
答案 0 :(得分:3)
你可以做类似的事情,但我不确定这是否真的有意义,因为你的文件似乎没有内容......
如果您有内容,请将string.Empty
替换为内容
File.WriteAllText(path, string.Empty, Encoding.GetEncoding(<someEncodingCode>));
编辑:
File.WriteAllText(path, string.Empty, new UTF8Encoding(false));
答案 1 :(得分:1)
首先,除了几个基础(例如,Unicode BOM,XML的编码规则)之外,您将需要某种形式的元数据来告诉您当前的编码。虽然有些工具会猜测它们不可靠(例如ISO/IEC 8859-1中的各种拉丁文编码没有任何区别它们。)
知道输入编码后,将使用编码名称创建的Encoding
实例传递给StreamReader
构造函数,创建一个具有所需输出的StreamWriter
实例编码,然后将字符串从一个泵送到另一个。
(如果您知道这些文件不是太大:请使用File.ReadAllTetxt
一次性阅读所有内容,然后使用File.WriteAllText
进行搜索,这需要Encoding
个参数。