microsoft windows api:如何知道文件是 utf?

问题描述 投票:0回答:1

任何人都可以告诉我如何在我的程序(Alaska Xbase++)中使用 windows api,我可以检查 TXT 文件是 UTF(8、16 等)还是 ANSI? 谢谢

我在网上搜索了一无所获。

winapi xbase
1个回答
0
投票

除非文件有明确的字节顺序标记(BOM),否则无法知道任何给定的字节序列采用什么编码(并且 BOM 仅适用于 UTF,不适用于“ANSI”)。那时你能做的最好的事情就是猜测,通过对输入运行一些试探法。

据我所知,系统中只有两个API可以帮助您完成猜测部分:

  • IsTextUnicode
    :一个简单的二进制分类器,产生“看起来像 Unicode”“看起来不像 Unicode” 结果(其中 “Unicode” 表示 “UTF-16”)。
  • IMultiLanguage2::DetectCodepageInIStream
    :更精细的猜测器,能够分类更多的代码页,多个代码页,以及相应的置信度。

按照惯例,Raymond Chen 在他的博客文章中介绍了这个问题进一步尝试猜测文件的编码

© www.soinside.com 2019 - 2024. All rights reserved.