我有一个关于字符串的简单问题。考虑以下代码:
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)