• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

как прочитать код символов арабского языка?

  • Автор темы rustamh
  • Дата начала
R

rustamh

Здравствуйте!
Мне нужно использовать функцию ASC() для арабских символов - но проблема в том, что на их месте VBA видит только ? - вопросительные знаки. И функция ASC() выдает всегда одно и то же значение для любого арабского символа (код вопросительного знака).

Но ведь EXCEL видит, что эти символы разные. он очень красиво и четко отображает. неужели нельзя заставить VBA тоже различать их???
помимо основного текста нужны также кодировки диакритических символов (типо знака ударения в русском языке, который над буквами пишется).
А вообще задача состоит в том, чтобы транскрипцию сделать. На входе арабская строка, а на выходе - русская.
 
R

rustamh

Вот, один добрый человек сказал мне так сделать:

нужно использовать не Asc и Chr, а AscW и ChrW
Смотри код ниже:
Для примера на новом листе Excel введи слово в нужной кодировке, и оставь эту ячейку активной
альше запускаешь макрос smile.gif и буквы слова напечатаются в ячейках, и в последней ячейке столбца распечатается копия слова.

Sub Letters()

Dim str As String
Dim i As Integer
Dim lngCode As Long
Dim s1 As String

'читаем активную ячейку
str = ActiveCell.Value

'идем по каждой букве
For i = 1 To Len(str)
'получаем юникодовский код
lngCode = AscW(Mid(str, i, 1))
' и печатаем букву в следующей строке
ActiveCell.Offset(i + 1).Value = ChrW(lngCode)
s1 = s1 & ChrW(lngCode)
' формируем строку-копию (для проверки)
Next i

'и печатаем в последней строке
ActiveCell.Offset(i + 1).Value = s1
End Sub
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!