2010-10-23 76 views
7

如何獲取char的Unicode值?獲取VB中字符的Unicode值

例如,我知道,我可以用ASCII做到這一點:

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

如果我有一個Unicode字符,但?

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

很明顯,第二個例子不起作用,因爲該字符不在Ascii集合中。是否有一個我可以使用的等效函數,將返回8226而不是錯誤的結果149

我在Outlook 2003中這樣做,如果這有什麼區別的話。

回答

16

AscW怎麼樣?

+0

是啊,這就是我一直在尋找,感謝的功能! – Senseful 2010-10-23 22:01:42

+0

+1,但您已鏈接到Vb.net文檔。這裏的VB6而不是(VBA會更好)http://msdn.microsoft.com/en-us/library/aa262678(VS.60).aspx – MarkJ 2010-10-24 19:58:12

+0

@MarkJ,感謝您的VB6鏈接,答案更正。 – 2010-10-25 05:36:26

2

答案由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