我有一个具有多个编码的文本文件,其中要使用的编码本身在文本文件中指定(vCard 格式是一个允许这样做的示例)。这是一个例子:
charset=windows-1251: ABCDE
charset=utf-8: VWXYZ
...其中“ABCDE”将被解释为编码“windows-1251”,而“VWXYZ”将采用 UTF8。最终,我希望它全部转换为标准字符串(在 C# 中为 UTF2/UTF16)。
我想我想使用 RealAllText() 因为如果没有另外指定,这显然有助于自动使用默认编码。当如上所述指定字符集时,它将覆盖默认编码。
不幸的是,我还需要进行一些文本解析来查找各种编码,所以我认为需要 ReadAllBytes(),所以我可以以更原始的格式逐个字符地解析。
我也希望它快点。处理这个问题的最佳方法是什么?