我有一个关于字符串的简单问题。请考虑以下代码:
Dim S1 as String = "abc"
S1的编码是什么?是UTF-8还是取决于用户窗口的本地设置?
答案 0 :(得分:6)
System.String
documented在内部使用UTF-16。
答案 1 :(得分:4)
这是应该不需要担心的实施细节(除非你离开Basic Multilingual Plane,在这种情况下,事情变得复杂,因为Char
s represent UTF-16 code units)。
当它变得相关时,即当字符串转换为字节数组时,你必须选择要使用的编码:
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)