gpt4 book ai didi

windows - 检测 C/C++ 中字符串的编码

转载 作者:可可西里 更新时间:2023-11-01 13:28:50 25 4
gpt4 key购买 nike

给定一个指向字节数组(字符)的指针形式的字符串,我如何检测 C/C++ 中字符串的编码(我使用的是 visual studio 2008)?我进行了搜索,但大多数样本都是用 C# 完成的。

谢谢

最佳答案

假设你知道输入数组的长度,你可以做出如下猜测:

  1. 首先,检查前几个字节是否匹配已知的 byte order marks (BOM) for Unicode .如果他们这样做,你就完成了!
  2. 接下来,在最后一个字节之前搜索“\0”。如果您找到一个,则您可能正在处理 UTF-16 或 UTF-32。如果您发现多个连续的 '\0',则可能是 UTF-32。
  3. 如果任何字符从0x800xff,它肯定不是ASCII 或UTF-7。如果您将输入限制为 Unicode 的某些变体,您可以假设它是 UTF-8。否则,您必须进行一些猜测才能确定哪个multi-byte character set。这是。那不会很有趣。
  4. 此时是:ASCII、UTF-7、Base64 或 UTF-16 或 UTF-32 范围恰好不使用最高位且没有任何空字符。

关于windows - 检测 C/C++ 中字符串的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7523217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com