原理很简单,系统自带len函数统计字符数都是按1位,那么我们就获取中文字符有多少个,然后len长度+中文字符长度就等于我们要的中文2位字符 英文一位字符。

下面看代码:

str = "我爱china!"
//获取中文字符 的函数
Function get_Chinese(str)
    For i=1 to Len(str)
        arr = Mid(str, i, 1)
        If Asc(arr)>=-20319 And Asc(arr)<=-2050 Then
            Chinese_str = Chinese_str & arr
        End If
    Next
    get_Chinese = Chinese_str
End Function

//将字符长度+中文长度=我们要的中文2位字符 英文一位字符
Function str_len(val)
	str1 = val
	str2 = get_Chinese(val)
	str_len=len(str1)+len(str2)
End Function

TracePrint str_len(str)

复制代码粘贴调试,调试输出:10

刚好是我们要的字符长度