2010-08-26 53 views
9

In some of its API function Microsoft使用“多字符串”格式来指定字符串列表。有关Microsoft多字符串格式的详细信息

据我所知,一个多字符串是一个以空字符结尾的串接空字符串的缓冲区。但是,这也可以解释为一个字符串列表,由空字符分隔并以两个空字符结尾。

这里是一个例子。下列各项组成的列表:

变为:

apple\0banana\0orange\0\0 

但现在我不知道:

如何将一个空列表来表示?

难道是:

\0 

或者:

\0\0 

我没有发现阐明了这一点准确的文档。任何线索?

+0

在“字符串列表”的最后一个字符串是零长度字符串。一个\ 0就足以终止。 – 2010-08-26 15:16:32

+0

不知道如何使用UTF-8及其多字节字符? – Piskvor 2010-08-26 15:29:24

+3

Windows API不支持UTF-8 :-(但如果是这样,没有什么会改变,因为UTF-8多字节字符永远不会包含\ 0。 – dan04 2010-08-26 15:34:29

回答

9

\0

+1

我敢打赌,这是你有史以来最短的答案;)它完美地回答了我的问题,尽管。谢谢。 – ereOn 2010-08-26 15:18:25

+1

我是一个很少说话的人。如果你只能说“它完全回答我的问题,谢谢。”只需点击一个复选标记... – dan04 2010-08-26 15:26:07

+0

所以它不可能在这样的列表中有一个空字符串(“”)? – torak 2010-08-26 15:29:06

3

这将是\0

Raymond Chen describes how this works on his blog:字符串列表以空字符串结尾。如果列表中的第一个字符串为空,则列表本身为空。

+0

是的,这是一篇很棒的文章;-) – dan04 2010-08-26 15:26:54