第二種,將漢字轉換為拼音
如: 將 我愛精品夢露 轉換為 woaijingpinmenglu
算法和上面的一樣,只是區分得更細了
中文轉換為拼音.vbs
'============== 下面是字符串转换为拼音的函数 ===================
'------ 汉字ASCII码拼音对照表,google来的,感谢无名氏-----
Set d = CreateObject("Scripting.Dictionary")
d.add "a",-20319
d.add "ai",-20317
d.add "an",-20304
d.add "ang",-20295
d.add "ao",-20292
d.add "ba",-20283
d.add "bai",-20265
d.add "ban",-20257
d.add "bang",-20242
d.add "bao",-20230
d.add "bei",-20051
d.add "ben",-20036
d.add "beng",-20032
d.add "bi",-20026
d.add "bian",-20002
d.add "biao",-19990
d.add "bie",-19986
d.add "bin",-19982
d.add "bing",-19976
.....
'最后一个字符是“座”,ASC值为-10247
'--------------------- 将单个字符转换为拼音 --------------------------
Function Chr2PY(num)
If num < -20319 Or num > -10247 Then
Chr2PY = Chr(num)
Else
a = d.Items
b = d.keys
For i = d.count - 1 To 0 Step -1
If a(i) <= num Then Exit For
Next
Chr2PY = b(i)
End If
End Function
'---------------------- 将中文标点符号转换为英文标点符号 --------------------------
Function SymbolC(str)
str = Replace(str, "!", "!")
str = Replace(str, "(", "(")
str = Replace(str, ")", ")")
str = Replace(str, "-", "-")
str = Replace(str, "——", "--")
....
SymbolC = str
End Function
'---------------------- 将字符串转换成拼音 --------------------------
Function Str2PY(str)
Str2PY = ""
For i = 1 To len(str)
Str2PY = Str2PY & Chr2PY(Asc(Mid(str, i, 1)))
Next
End Function
'----------------------- 测试 -----------------------
temp = InputBox("请输入需要转换成拼音的字符串:", "InputBox", "我是测试字符串,呵呵。…… English char is ok too.")
If Len(temp) > 0 Then
msgbox SymbolC(Str2PY(CStr(temp))), ,"Result"
End If
|