我需要使用最小的内存量将非常大的文本文件(通常超过100 MB)的字符编码“windows-1252”转换为UTF8。
任何人都知道最快/最低内存开销的方式是什么?
我假设有一些非常快速的StreamReader / StreamWriter组合!
感谢
答案 0 :(得分:3)
如果您不希望通过
分配您在其中运行的所有数据"windows-1252"
UTF-8
答案 1 :(得分:2)
Encoding.Convert
方法在byte[]
上运行 - 您可以使用一个小缓冲区调用它,从原始文件读取然后写入新文件。如果原始文件使用可变字节编码,则需要非常小心地只读取字符边界上的缓冲区(如果可能)。
这将根据您的意愿使用尽可能多的内存 - 具体取决于您选择的缓冲区大小。