将大文本文件从特定字符集转换为 UTF8
本文关键字:字符集 转换 UTF8 文本 文件 | 更新日期: 2023-09-27 18:33:27
我需要使用最小的内存将非常大的文本文件(通常超过 100 MB)的字符编码"windows-1252"转换为 UTF8。
有谁知道最快/最低的内存开销方法是什么?
我假设一些超快的StreamReader/StreamWriter组合!
谢谢
如果您不想分配所有数据,则通过以下方式对数据块进行操作
- 首先用 StreamReader 和
"windows-1252"
阅读它 - 在同一迭代中,使用StreamWriter编写它,并具有指定的
UTF-8
Encoding.Convert
方法对byte[]
进行操作 - 您可以使用一个小缓冲区调用它,从原始文件读取,然后写入新文件。如果原始文件使用可变字节编码,则需要非常小心,只读取字符边界上的缓冲区(如果可能)。
这将根据需要使用或多或少的内存 - 具体取决于您选择的缓冲区大小。