将大文本文件从特定字符集转换为 UTF8

本文关键字:字符集 转换 UTF8 文本 文件 | 更新日期: 2023-09-27 18:33:27

我需要使用最小的内存将非常大的文本文件(通常超过 100 MB)的字符编码"windows-1252"转换为 UTF8。

有谁知道最快/最低的内存开销方法是什么?

我假设一些超快的StreamReader/StreamWriter组合!

谢谢

将大文本文件从特定字符集转换为 UTF8

如果您不想分配所有数据,则通过以下方式对数据块进行操作

  • 首先用 StreamReader 和 "windows-1252" 阅读它
  • 在同一迭代中,使用StreamWriter编写它,并具有指定的UTF-8

Encoding.Convert 方法对byte[]进行操作 - 您可以使用一个小缓冲区调用它,从原始文件读取,然后写入新文件。如果原始文件使用可变字节编码,则需要非常小心,只读取字符边界上的缓冲区(如果可能)。

这将根据需要使用或多或少的内存 - 具体取决于您选择的缓冲区大小。