在VB中获取字符的Unicode值

16

我该如何获取字符的Unicode值?

例如,我知道可以使用ASCII实现这一点:

i = Asc("a") // i == 97 (correct)

如果我有一个Unicode字符怎么办?

i = Asc("•") // i == 149 (incorrect... should return 8226)

显然第二个例子不起作用,因为该字符不在Ascii集中。是否有一个等效的函数可以使用,它将返回8226而不是错误结果149

我正在Outlook 2003中进行此操作,如果这有任何区别。

2个回答

25

+1 但是你链接到了 Vb.net 文档。这里提供 VB6(最好是 VBA)的链接:http://msdn.microsoft.com/en-us/library/aa262678(VS.60).aspx - MarkJ

3

RC提供的答案帮助了我很多,但是AscW()函数有时会返回负值。

在我的情况下,当处理中文字符时出现了问题。

我在网上找到了一个解决方法:

Function CharToUnicode(strChar As String)

    Dim lngUnicode As Long

    lngUnicode = AscW(strChar)

    If lngUnicode < 0 Then
        lngUnicode = 65536 + lngUnicode
    End If

    CharToUnicode = lngUnicode

End Function

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接