查看單個文章
舊 2006-01-16, 10:24 PM   #2 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

第二種,將漢字轉換為拼音
如: 將 我愛精品夢露 轉換為 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
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次