7

我有一个关于字符串的简单问题。考虑以下代码:

Dim S1 as String = "abc"

S1的编码是什么?那是 UTF-8 还是取决于用户 Windows 本地设置?

4

2 回答 2

7

System.String记录在内部使用 UTF-16。

于 2012-04-27T12:01:29.173 回答
5

这是一个您无需担心的实现细节(除非您离开Basic Multilingual Plane,在这种情况下,事情会变得复杂,因为Chars 代表 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)
于 2012-04-27T11:48:03.067 回答