English 中文(简体)
C#: 是否有办法发现有什么样的果园用了档案?
原标题:C#: Is there any way to discover what charset encoding a file is using?
  • 时间:2009-08-28 13:45:58
  •  标签:

是否有办法发现有什么样的果园用了档案?

最佳回答
问题回答

我先在C++中就这样说了,而且这很复杂。 这里,我做了些什么(接受与第一道做的):

  • Look for Byte Order Marks
  • Check if the text is valid UTF-32 BE/LE
  • Check if the text is valid UTF-16 BE/LE
  • Check if the text is valid UTF-8
  • Assume current code page

这涉及许多没有生物能力的文本档案,但并不帮助储存在海关ANSI代码网页上的文本。

因此,不可能进行决定性的检测。 例如,用“西欧”违约代码页的计算机“东欧元”加固和装载的文档将被拆解。

在这种情况下,唯一的帮助可能性是让用户选择代码网页(从用户的经验来看,最好让用户在看到文本时改变假定编码)。

它根据一套测试方法开展工作,但当然可能作出错误解释,如果不可能的话。

可通过对案文的统计分析确定准则的页数(例如,带有非ASCII特性的品格和三重物品的频率,或以不同语文列出的字数,但我没有发现任何适当的办法试图这样做。

Win32 IsTextUnicode 臭名昭著,它只检查UTF-16,并且可能是“bush hid the fact”的背后方。

正如斯潘chen写的,你应写“掩盖事实”,在“说明”中,不要再说一遍,看如何难以发现编码。

在可能有用的链接清单中添加一栏小类,一把一栏目放在一起,以发现单编码编码编码编码(与BOM有或没有BOM)与一个默认代码页(通常称为Windows-1252,在互联网上称为“ASCII”作为编码。 ASCII:

它采取的一些步骤超出了“精简程序”的缺省功能,基本上完全是上面回答中说的“......”。

  • First check for a BOM, use it if provided
  • Otherwise, check what Unicode encodings the file COULD be.
  • For each possible unicode encoding found, check whether that encoding is LIKELY for the provided data (assuming primarily western-european content)
  • If the "possible" unicode encodings don t look likely, use the default codepage/encoding provided

回答太晚了——我最近才清理了这个班子并将其放在网上。





相关问题
热门标签