【发布时间】:2012-10-07 18:02:20
【问题描述】:
我有一个具有多个编码的文本文件,其中要使用的编码本身在文本文件中指定(vCard 格式是一个允许这样做的示例)。这是一个例子:
charset=windows-1251: ABCDE
charset=utf-8: VWXYZ
...其中“ABCDE”将被解释为编码“windows-1251”,而“VWXYZ”将采用 UTF8。最终,我希望将其全部转换为标准字符串(在 C# 中为 UTF2/UTF16)。
我想我想使用 RealAllText() 因为如果没有另外指定,这显然有助于自动使用默认编码。如上所述指定字符集时,将覆盖默认编码。
不幸的是,我还需要进行一些文本解析来查找各种编码,所以我认为 ReadAllBytes() 是必需的,所以我可以以更原始的格式逐个字符地解析。
我也希望它快。处理这个问题的最佳方法是什么?
【问题讨论】:
-
最好提供几行的样本(以十六进制表示)。这是一个非常奇怪的文件。
-
如果您提供样本,请确保它包含编码特定字符,而不仅仅是一些简单的 ascii 字符,以证明编码/解码过程的正确性。
标签: c# text utf-8 character-encoding globalization