在VB中所有的字符串默认都是UnicodeDim strBuf() As Byte
Dim s        As Strings = "kjasdkfajdfk"
strBuf = StrConv(s, vbFromUnicode)

解决方案 »

  1.   


    str = strconv(str, fromunicode)
    把字符串转为每字符1Byte。
      

  2.   

    VB中用的是双字节编码,而WINDOWS中的是单字节。以下是一个简单的测试程序,你看一下就知道了。
    Dim a As Stringa = "我me"Debug.Print LenB(a)
    a = StrConv(a, vbFromUnicode)
    Debug.Print LenB(a)
    Debug.Print a
    Debug.Print StrConv(a, vbUnicode)
    End Sub如果你的那个字符串中如果全是数字和英文字符组成,可以用a = StrConv(a, vbFromUnicode)这样的方法转换后,写入数据库中。读出时再用StrConv(a, vbUnicode)这样的方法转换回来就行了。
    如果里面有中文字符,就必须用mid,left,right等字符串处理函数分成两个来处理。
    如:Dim A(1) As String*150
    A(0)=Left(a,150)
    A(1)=Right(,150)
    把字符串分成长度为150的两个字符串就行了。
      

  3.   

    再请各位大虾回答一下我的问题,一定给分。
    http://expert.csdn.net/Expert/topic/1236/1236680.xml?temp=.1397974