wchar_t char数组中的奇怪符号

时间:2013-02-08 17:41:43

标签: c++ wchar-t

Here's a char array with a weird symbol that stops me from being able to compare it to a normal wchar_t array.

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

使用Unicode字符和多字节字符集。它阻止我将它与另一个阵列进行比较。

编辑:Google在研究“比较Unicode字符串c ++”时没有给我任何帮助。

我还查看了使用wchar_ts发生的历史怪异符号,它们也是稀疏的。

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

特别是名称参数: -

  

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

所以它是某种形式的保留OLE名称。但是,我对结构化存储知之甚少,无法帮助你。

答案 1 :(得分:0)

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

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

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