在 MS Access 中,我向 API 发送请求并接收乌兹别克拉丁语脚本的数据,包括 G'、Q、O' 等字符。我需要将它们转换为乌兹别克西里尔字母,这些字母看起来像 В、К、Ў。 Ш 我尝试过编写函数,但没有成功。我读过有关 ASCII 的内容,但 ASCII 表中没有这样的字母。如何在我的字段中正确显示它们?我已经为此苦苦挣扎了三天了!预先感谢您的帮助!
Dim LatinToCyrillic As Object
Dim Character As String
Dim Result As String
' Create a dictionary for Latin to Cyrillic character mapping
Set LatinToCyrillic = CreateObject("Scripting.Dictionary")
' Add mappings for Latin characters to Cyrillic
LatinToCyrillic.Add "A", "А"
LatinToCyrillic.Add "B", "Б"
LatinToCyrillic.Add "C", "С"
LatinToCyrillic.Add "D", "Д"
LatinToCyrillic.Add "E", "Э"
LatinToCyrillic.Add "F", "Ф"
LatinToCyrillic.Add "G", "Г"
LatinToCyrillic.Add "H", "Ҳ"
LatinToCyrillic.Add "I", "И"
LatinToCyrillic.Add "J", "Ж"
LatinToCyrillic.Add "K", "К"
LatinToCyrillic.Add "L", "Л"
LatinToCyrillic.Add "M", "М"
LatinToCyrillic.Add "N", "Н"
LatinToCyrillic.Add "O‘", "Ў"
LatinToCyrillic.Add "O", "О"
LatinToCyrillic.Add "P", "П"
LatinToCyrillic.Add "Q", "Қ"
LatinToCyrillic.Add "G‘", "Ғ"
LatinToCyrillic.Add "R", "Р"
LatinToCyrillic.Add "S", "С"
LatinToCyrillic.Add "T", "Т"
LatinToCyrillic.Add "U", "Ю"
LatinToCyrillic.Add "V", "В"
LatinToCyrillic.Add "X", "Х"
LatinToCyrillic.Add "Y", "Е"
LatinToCyrillic.Add "Sh", "Ш"
' Initialize the result
Result = ""
Dim i As Long
' Iterate through each character in the input text
For i = 1 To Len(inputText)
Character = mid(inputText, i, 1)
' Check if the character has a Cyrillic equivalent
If LatinToCyrillic.Exists(Character) Then
Result = Result & LatinToCyrillic(Character)
Else
Result = Result & Character
End If
Next i
' Return the translated text
TranslateLatinToCyrillic = Result
End Function
一系列简单的连续更换就足够了。应首先检查两个(或更多)拉丁字符的组合。
Function TranslateLatinToCyrillic(inputText As String)
DIM R As STRING : R = inputText
R = REPLACE(R , "G‘" , "Ғ")
R = REPLACE(R , "O‘" , "Ў")
R = REPLACE(R , "Sh" , "Ш")
R = REPLACE(R , "A" , "А")
R = REPLACE(R , "B" , "Б")
R = REPLACE(R , "C" , "С")
R = REPLACE(R , "D" , "Д")
R = REPLACE(R , "E" , "Э")
R = REPLACE(R , "F" , "Ф")
R = REPLACE(R , "G" , "Г")
R = REPLACE(R , "H" , "Ҳ")
R = REPLACE(R , "I" , "И")
R = REPLACE(R , "J" , "Ж")
R = REPLACE(R , "K" , "К")
R = REPLACE(R , "L" , "Л")
R = REPLACE(R , "M" , "М")
R = REPLACE(R , "N" , "Н")
R = REPLACE(R , "O" , "О")
R = REPLACE(R , "P" , "П")
R = REPLACE(R , "Q" , "Қ")
R = REPLACE(R , "R" , "Р")
R = REPLACE(R , "S" , "С")
R = REPLACE(R , "T" , "Т")
R = REPLACE(R , "U" , "Ю")
R = REPLACE(R , "V" , "В")
R = REPLACE(R , "X" , "Х")
R = REPLACE(R , "Y" , "Е")
TranslateLatinToCyrillic = R
End Function
或者,使用以下代码以防复制/粘贴到 VBA 编辑器时丢失字符:
Function TranslateLatinToCyrillic(inputText As String)
DIM R AS STRING : R = inputText
R = REPLACE(R , "G‘" , ChrW(1170))
R = REPLACE(R , "O‘" , ChrW(1038))
R = REPLACE(R , "Sh" , ChrW(1064))
R = REPLACE(R , "A" , ChrW(1040))
R = REPLACE(R , "B" , ChrW(1041))
R = REPLACE(R , "C" , ChrW(1057))
R = REPLACE(R , "D" , ChrW(1044))
R = REPLACE(R , "E" , ChrW(1069))
R = REPLACE(R , "F" , ChrW(1060))
R = REPLACE(R , "G" , ChrW(1043))
R = REPLACE(R , "H" , ChrW(1202))
R = REPLACE(R , "I" , ChrW(1048))
R = REPLACE(R , "J" , ChrW(1046))
R = REPLACE(R , "K" , ChrW(1050))
R = REPLACE(R , "L" , ChrW(1051))
R = REPLACE(R , "M" , ChrW(1052))
R = REPLACE(R , "N" , ChrW(1053))
R = REPLACE(R , "O" , ChrW(1054))
R = REPLACE(R , "P" , ChrW(1055))
R = REPLACE(R , "Q" , ChrW(1178))
R = REPLACE(R , "R" , ChrW(1056))
R = REPLACE(R , "S" , ChrW(1057))
R = REPLACE(R , "T" , ChrW(1058))
R = REPLACE(R , "U" , ChrW(1070))
R = REPLACE(R , "V" , ChrW(1042))
R = REPLACE(R , "X" , ChrW(1061))
R = REPLACE(R , "Y" , ChrW(1045))
TranslateLatinToCyrillic = R
End Function