Какая кодировка по умолчанию для строки в 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)