字元集與封送處理

char 值、string 物件與 System.Text.StringBuilder 物件封送處理方式取決於 P/Invoke 或結構上 CharSet 欄位的值。 您可以透過在宣告您的 P/Invoke 時設定 DllImportAttribute.CharSet 欄位,以設定 P/Invoke 的 CharSet。 若要設定 CharSet 類型的,請 StructLayoutAttribute.CharSet 在您的類別或結構宣告上設定欄位。 當這些屬性欄位未設定時,語言編譯器可決定要使用的 CharSet。 C # 和 Visual Basic 預設會使用 Ansi 字元集。

下表顯示每個字元集與使用該字元集進行封送處理時,如何表示字元或字串:

CharSet Windows UNIX 上的 .NET Core 2.2 及更早版本 UNIX 上的 .NET Core 3.0、更新版本及 Mono
Ansi char (系統預設 Windows (ANSI) 字碼頁) char (UTF-8) char (UTF-8)
Unicode wchar_t (UTF-16) char16_t (UTF-16) char16_t (UTF-16)
Auto wchar_t (UTF-16) char16_t (UTF-16) char (UTF-8)

選擇您的字元集時,請確定您知道您原生代表的代表應該是什麼樣子。