Получение значения unicode для символа в VB - PullRequest
12 голосов
/ 24 октября 2010

Как я могу получить Unicode-значение символа?

Например, я знаю, что могу сделать это с помощью ascii:

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

Что, если у меня есть символ Unicode?

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

Очевидно, что второй пример не работает, так как этот символ отсутствует в наборе Ascii. Есть ли эквивалентная функция, которую я могу использовать, которая будет возвращать 8226 вместо неправильного результата 149?

Я делаю это в Outlook 2003, если это что-то меняет.

Ответы [ 2 ]

22 голосов
/ 24 октября 2010

А как насчет AscW ?

2 голосов
/ 14 января 2016

Ответ предоставлен 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...