今天一個(gè)客戶(hù)需做多語(yǔ)言的網(wǎng)站系統,但他原來(lái)的系統是GB2312的。又不想重輸數據~!后臺管理系統是GB的。。要重做好費時(shí)間!想了想覺(jué)得只好用UTF8來(lái)做了字符轉換。
但在網(wǎng)上找了一些GB2312轉UTF8的代碼。調試一看。不是出錯就是全部轉換了。因為數據里有HTML代碼。。導至格式全亂了。。。!
沒(méi)辦法。只好自已動(dòng)手寫(xiě)。。參考了幾個(gè)程序后。。寫(xiě)出來(lái)的。。調試后~~基本沒(méi)什么問(wèn)題~~呵呵~!
ASP的代碼。。有錯的希望可以提出`~至于轉換速度就沒(méi)有調試了~
Function chinesetoutf8(Byval Chinese)
'code by 350am
350am@163.comsGB = Trim(Chinese)
For i = 1 to Len (sGB)
sTemp = Mid(sGB ,i,1)
iTemp = Asc(sTemp)
If (iTemp>127 OR iTemp<0) Then
iUnicode = AscW(sTemp)
If iUnicode<0 Then
iUnicode = iUnicode + 65536
End If
Else
iUnicode = iTemp
End If
sResult = sResult &GBTOUTF8(iUnicode)
next
chinesetoutf8=sResult
End Function
Function GBTOUTF8(Byval a_iNum)
'code by 350am
350am@163.comiHexNum = Trim(a_iNum)
If iHexNum = "" Then
Exit Function
End If
sResult = ""
If (iHexNum >127) Then
sResult = sResult & "" & Hex(iHexNum) & ";"
Else
sResult = sResult & chr(iHexNum)
End If
GBTOUTF8=sResult
End Function