文字列について簡単な質問があります。次のコードを検討してください。
Dim S1 as String = "abc"
S1 のエンコーディングは何ですか? それはUTF-8ですか、それともユーザーのWindowsのローカル設定に依存していますか?
System.String
内部で UTF-16 を使用することが文書化されています。
これは、気にする必要のない実装の詳細です( Basic Multilingual Planeを離れる場合を除きます。この場合、 Char
s は 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)