2010-08-26 52 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