更改文本文件编码(Change Text File Encoding)

2019-10-19 05:15发布

如何改变通过代码编码的文本文件? 我使用此代码实际创建的文件本身,但我怎么能更改编码(改为UTF-8 W / O BOM)

string path = @"E:\Test\Example.txt";
if (!File.Exists(path))
{
    File.Create(path);
}

Answer 1:

你可以做这样的事情,但我不知道这使得真正意义,因为它似乎你在你的文件中没有的内容...

如果你有一个内容,更换string.Empty由内容

File.WriteAllText(path, string.Empty, Encoding.GetEncoding(<someEncodingCode>));

编辑:

File.WriteAllText(path, string.Empty, new UTF8Encoding(false));


Answer 2:

首先,除了少数碱(例如,一个Unicode BOM,XML的编码规则),你将需要某种形式的元数据来告诉你目前的编码。 尽管一些工具会做出猜测,他们是不可靠的(例如,在不同的拉丁编码ISO / IEC 8859-1没有什么区分它们)。

一旦你知道输入编码,通过实例Encoding ,与编码的名称创建的,到StreamReader构造函数,创建一个实例StreamWriter与所需的输出编码,然后从一个到另一个泵串。

(如果您知道这些文件是不是太大:一气呵成与阅读一切File.ReadAllTetxt与写File.WriteAllText ,内搭Encoding参数。



文章来源: Change Text File Encoding
标签: c# notepad++