我正在閱讀Mono's marshalling guide,目的是編組Objective-C++和Unity之間的字符串(用於iOS遊戲),並且我對Mono中的字符串編組編碼有些困惑。我知道用於編組的字符串編碼是由CharSet枚舉指定的,但它只允許Ansi和Unicode(= UTF-16)(和Auto,但它只是讓運行時間在前兩個之間進行選擇)指定的編組。Mono在P/Invoke中編組字符時使用什麼編碼?
但該指南還一直在說,單聲道編組UTF-8中的字符串。這怎麼可能?如果沒有指定CharSet,會發生這種魔術嗎?如果我沒有指定CharSet,這是否意味着我可以安全地將Objective-C++中的[NSString UTF8String]傳遞給C#?這是否意味着與微軟的運行時間不兼容?
狼瘡說的肯定是非常合理的。如果有一些真實的文檔可以讓你放心,你會很高興。您鏈接到的Mono文檔非常薄弱。 –
你是對的,在撰寫這些文字時,單元類在Mono文檔中完全沒有記載:-( –