Microsoft多字符串格式的详细信息

9

Microsoft的一些API函数中,使用“多字符串”格式来指定字符串列表。

据我理解,多字符串是一个以空字符结尾的串联空字符的缓冲区。但也可以将其解释为由空字符分隔并以两个空字符终止的字符串列表。

以下是一个示例。列表由以下项目组成:

"apple", "banana", "orange"

成为:

apple\0banana\0orange\0\0

我将为您翻译以下内容:

但现在我想知道:

空列表应该如何表示?

是这样吗:

\0

或者:

\0\0

我找不到准确的文档来澄清这个问题。有什么线索吗?

“字符串列表”中的最后一个字符串是零长度字符串。只需一个\0即可终止。 - Chris Becke
想知道UTF-8及其多字节字符是如何工作的吗? - Piskvor left the building
3
Windows API 不支持 UTF-8,但即使支持,也不会有任何变化,因为 UTF-8 多字节字符中不包含 \0。 - dan04
3个回答

9

2
我敢打赌这是你回答最短的一次了 ;) 不过它完美地回答了我的问题。谢谢。 - ereOn
2
我是一个话不多的人。如果你能通过点击复选框来说“它完美地回答了我的问题。谢谢。”那该多好啊。 - dan04
那么在这样的列表中不可能有空字符串(“”)吗? - torak
1
不,它不是这样的,就像你不能在C字符串中有\0一样。 - dan04

4

我可以帮助翻译,以下是需要翻译的内容:

这将会是\0

雷蒙德·陈在他的博客上描述了这个工作原理:字符串列表以空字符串结尾。如果列表中的第一个字符串为空,则列表本身为空。


是的,那是一篇很棒的文章;-) - dan04

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接