7

文字列について簡単な質問があります。次のコードを検討してください。

Dim S1 as String = "abc"

S1 のエンコーディングは何ですか? それはUTF-8ですか、それともユーザーのWindowsのローカル設定に依存していますか?

4

2 に答える 2

7

System.String内部で UTF-16 を使用することが文書化されています。

于 2012-04-27T12:01:29.173 に答える
5

これは、気にする必要ない実装の詳細です( Basic Multilingual Planeを離れる場合を除きます。この場合、 Chars は UTF-16 コード単位を表すため、複雑になります)。

関連する場合、つまり、文字列がバイト配列に変換される場合、使用するエンコーディングを選択する必要があります。

Dim S1 As String = ...

Dim utf8Bytes = Encoding.UTF8.GetBytes(S1)
Dim utf16Bytes = Encoding.Unicode.GetBytes(S1)

Dim western As New Encoding(1252)
Dim westernBytes = western.GetBytes(S1)
于 2012-04-27T11:48:03.067 に答える