0

这是一个带有奇怪符号的 char 数组,它阻止我将它与普通的 wchar_t 数组进行比较。

是什么导致这个奇怪的符号出现在数组的开头?

它与 Unicode 字符和多字节字符集一起出现。它阻止了我将它与另一个数组进行比较。

编辑:谷歌在研究“比较 Unicode 字符串 c++”时什么也没给我。

我还查看了 wchar_ts 出现的历史上奇怪的符号,它们也很稀疏。

编辑:Visual Studio 2010,Windows 7,代码无法显示。它是结构化存储文件流名称的一部分。

我已经提供了我能提供的所有信息。我正在打开并枚举一个结构化存储文件,一旦枚举了该流,wchar_t 数组就是 pwcsName 值。我正在寻找一种将其与“SummaryInformation”进行比较的方法。那个符号挡住了。

我想到的一个可能的解决方案是从数组中的第二个字符开始创建一个子字符串,但我不确定如何去做。

4

2 回答 2

1

在此处阅读有关 Windows 结构化存储的信息:

http://msdn.microsoft.com/en-gb/library/windows/desktop/aa380020(v=vs.85).aspx

特别是 name 参数:-

指向包含新创建的流名称的以空字符结尾的宽字符 Unicode 字符串的指针。该名称可以稍后用于打开或重新打开流。名称长度不得超过 31 个字符,不包括字符串终止符。用作流/存储名称的第一个字符的 000 到 01f 字符保留供 OLE 使用。这是复合文件限制,而不是结构化存储限制。

所以它是某种形式的保留 OLE 名称。不过,我对结构化存储的了解还不够,无法为您提供更多帮助。

于 2013-02-08T18:00:18.490 回答
0

该符号用于显示在所选字体中没有字形的代码点。例如,代码点可能是不可打印的,或者它可能是调试器正在使用的字体中未包含的语言中的字符。

从这里无法说出代码点实际上是什么。您将需要编写一些诊断代码,或在调试器中检查以找出它的真正含义。

为了解决问题,您需要追踪这些字符串的来源。然后看看你做错了什么。它看起来更像是代码中的一个错误。换句话说,也许字符串实际上比您的代码认为的晚一个字符开始。

于 2013-02-08T17:43:59.003 回答