VB字符串处理机制的问题,
计算机基础上不是说一个英文字符占一个字节,一个汉字字符占两个字节。那么早期的VB采用单字节处理机制,一个英文字符占一个字节,一个 汉字占两个字节。后来VB4.0以后就采用了大字符统一编码的方式,即所有字符都占2个字节 。早期的VB字符串处理机制我可以理解,可使后来的大字符统一编码的方式我就不太理解,计算机基础上不是说一个英文字符占一个字节,一个汉字字符占两个字节,为什么VB4.0以后的版本可以这样?我不太理解,谁能帮我解释一下啊 !
Option Explicit
Private Sub Form_Load()
Me.AutoRedraw = True
Const TEST As String = "abc123啊哦呃"
Dim bData() As Byte, i As Long
bData = TEST
Print "UNICODE"
For i = LBound(bData) To UBound(bData)
Print MyHex(bData(i)); " ";
If ((i + 1) Mod 16) = 0 Then Print
Next
bData = StrConv(TEST, vbFromUnicode)
Print
Print "............"
For i = LBound(bData) To UBound(bData)
Print MyHex(bData(i)); " ";
If ((i + 1) Mod 16) = 0 Then Print
Next
End Sub
Function MyHex(ByVal v As Byte) As String
MyHex = Right$("0" & Hex$(v), 2)
End Function
'调试下就直观多了吧。要解更多就百度吧!~