用ASP實現簡單的繁簡轉換
作者:tank 日期:2005-01-24
用ASP實現簡單的繁簡轉換
發佈時間:2004-8-14
國際化似乎是一個非常流行的口號了,一個網站沒有英文版至少也要弄個繁體版,畢竟都是漢字,翻譯起來不會那麼麻煩:P
一般的繁簡轉換是使用字典,通過GB的內碼算出BIG5字元在字典中的位置,讀取顯示之,用fso應該可以實現。這裡介紹的方法思路更簡單一些,用Dictionary對象,就是字典,呵呵,dicGb2Big5(gb)就是對應的BIG5。比起計算內碼再按照位置讀取字元簡單的多吧:)
為了減少開銷,把字典放在Application中,即在global.asa中建立兩個application的字典對像
<OBJECT id=objGb2Big5 progid="Scripting.Dictionrary" runat="server" scope="application">
</OBJECT>
<OBJECT id=objBig52Gb progid="Scripting.Dictionrary" runat="server" scope="application">
</OBJECT>
在application_onstart中給字典添加項目
objGb2Big5.Add "啊", "摆"
objGb2Big5.Add "阿", ""
objGb2Big5.Add "埃", "甁"
……
……
objBig52Gb.Add "摆", "啊"
objBig52Gb.Add "", "阿"
objBig52Gb.Add "甁", "埃"
……
字典項很多,就不都寫了
做好了字典,使用的時候只要查一下就行了:)
function gb2big5(str)
dim i, l, k, t, rtn
l = len(str)
rtn=""
for i=1 to l
k = mid(str, i, 1)
if ascw(k)>=0 and ascw(k)<128 then
t = k
else
if objGb2Big5.Exists(k) then
t = objGb2Big5.Item(k)
else
t = " "
end if
end if
rtn = rtn & t
next
gb2big5 = rtn
end function
function big52gb(str)
dim i, l, k, t, rtn
l = len(str)
rtn=""
for i=1 to l
k = mid(str, i, 1)
if ascw(k)>=0 and ascw(k)<128 then
t = k
else
if objBig52Gb.Exists(k) then
t = objBig52Gb.Item(k)
else
t = " "
end if
end if
rtn = rtn & t
next
big52gb = rtn
end function
測試一下看看吧
<%=gb2big5("繁簡轉換測試")%>