我需要使用最小的内存量将字符编码“windows-1252”的非常大的文本文件(通常超过100 MB)转换为UTF8。将大文本文件从特定字符集转换为UTF8
任何人都知道最快/最低的内存开销方式是什么?
我假设一些超高速的StreamReader/StreamWriter组合!
感谢
我需要使用最小的内存量将字符编码“windows-1252”的非常大的文本文件(通常超过100 MB)转换为UTF8。将大文本文件从特定字符集转换为UTF8
任何人都知道最快/最低的内存开销方式是什么?
我假设一些超高速的StreamReader/StreamWriter组合!
感谢
如果你不想分配你在它的块与"windows-1252"
UTF-8
的Encoding.Convert
方法上byte[]
工作 - 你可以用一个小的缓冲区调用此方法,从原来的文件,然后写入到一个新的文件中读取。如果原始文件使用可变字节编码,则必须非常小心才能在字符边界上读入缓冲区(如果可能)。
这将根据您选择的缓冲区大小使用尽可能多或尽可能少的内存。
这怎么能不建设性?这是一个实际的问题。您无法在资源受限的环境中将大文本文件加载到内存中,然后使用File.WriteAllText()。 – krisdyson