Private Sub Command1_Click()
 Dim a() As Byte
 Dim b As String
 b = "abc我是中国人"
 a = b
 Dim c As String
 c = StrConv(a, vbUnicode)
 Debug.Print c
End Sub有没有办法,通过字节数组a,还成完字符变量b中的内容?

解决方案 »

  1.   

    晕.你怎么能看不懂呢?
    上边是8个字符吧,
    存到字节型数组a中,a的维数是16,因为是Unicode字符啊,一个Unicode占两个字节,那么现在实际上a(0)和a(1)两个字节才是Unicode的一个字符.那么我现在将Unicode的字符以字节形式存起来了,想转换回来怎么办??我想,这和读文本文件是一样,所以我这样做.因为文本文件如果以二进制读的话,如果有中文,应该也是两个字节,那么现在存在字节型数组了,和上边是一样的,同样要有一个转为Unicode的过程.再举个例子,假如从串口读数据,读的也是二进制的吧,那也要把这个二进制的字节型数组转换为Unicode字符!
      

  2.   

    //有没有办法,通过字节数组a,还成完字符变量b中的内容?
    什么意思,没看明白,顶一下先!
    上边的程序你可以运行一下,结果不是B变量的值了..不过我认为是呢,但却是错的.StrConv(a, vbUnicode),难道它不会自动的将两个字节转为一个Unicode字符?我有些晕,我第一弄这个东东!
      

  3.   

    Private Sub Command1_Click()
     Dim a() As Byte
     Dim b As String
     b = "abc我是中国人"
     a = StrConv(b, vbFromUnicode)'把 string 转换成 字节数组
     Dim c As String
     c = StrConv(a, vbUnicode)
     Debug.Print c
    End Sub