Какая кодировка по умолчанию для строки в VB.NET?

У меня есть простой вопрос о строке. Рассмотрим следующий код:

Dim S1 as String = "abc"

Какая кодировка для S1? Это UTF-8 или в зависимости от локальной настройки пользовательских окон?

2 ответа

Решение

System.String задокументировано использование UTF-16 внутри страны.

Это деталь реализации, о которой вам не нужно беспокоиться (если вы не покинете Базовую многоязычную плоскость, и в этом случае все усложняется, так как 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)
Другие вопросы по тегам