一个字符串,如"教asdf育成sdflksdj";我如何统计其字节数;  并且按一定字节进行拆分如:以7个字节进行拆分
但遇到中文时又能很好地处理,不至于拆成乱码

解决方案 »

  1.   

    LenB可以用base64编码,如果涉及传输的话
      

  2.   

    字符数  len("教asdf育成sdflksdj")
    字节数  lenb(strconv("教asdf育成sdflksdj", vbfromunicode))
    dim i as long 
    dim str() as string
    redim str(len("教asdf育成sdflksdj") \ 7 - 1)) as string 
    for i = 1 to len("教asdf育成sdflksdj")-6 step 7
        str(i-1) = mid("教asdf育成sdflksdj", i, 7)
    next i
      

  3.   

    VB中本来就对中文能很好处理啦:
    debug.print mid("教asdf育成sdflksdj",1,7)
    结果
    教asdf育成中文是不会被拆成半个汉字的,VB中的字符串处理函数,是将中文当作一个字符处理的,所以不会乱码,当然,如果你用midb函数,就会了,带B的函数,是按字节的
      

  4.   

    VB中有两种函数,一种是按字符处理,一种是按字节处理(带B的)
      

  5.   

    Dim s As String
    s = "教asdf育成sdflksdj"
    Dim temps As String
    temps = StrConv(s, vbFromUnicode)
    j = LenB(temps)
    MsgBox j
      

  6.   

    Private Sub Command1_Click()
        Dim Str As String
        Dim StrChar As String
        Dim IntPos As Integer
        Str = "教asdf育成sdflksdj办公"
        IntPos = 1
        StrChar = ""
        Do While IntPos <= LenB(StrConv(Str, vbFromUnicode))
            StrChar = StrChar & Mid(Str, IntPos, 1)
            IntPos = IntPos + 1
            If LenB(StrConv(StrChar, vbFromUnicode)) >= 4 Then
                Debug.Print StrChar
                StrChar = ""
            End If
        Loop
        If StrChar <> "" Then Debug.Print StrChar
    End Sub结果:
    教as
    df育
    成sd
    flks
    dj办