0

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

任何人都知道最快/最低的内存开销方法是什么?

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

谢谢

4

2 回答 2

3

如果您不想分配所有数据,您可以通过

  • 首先用 StreamReader 阅读它 "windows-1252"
  • 在同一次迭代中使用StreamWriter编写它,并指定UTF-8
于 2012-05-08T15:39:16.783 回答
2

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

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

于 2012-05-08T15:37:40.340 回答