WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院WEB开发ASP 汉字GB2312和UTF-8的编码转换 阅读

汉字GB2312和UTF-8的编码转换

 2007-12-09 18:07:03 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬搫绾ч柕濠忕細閼割亜顪冪€n剙浠ф繛鍫熷灥椤曘儵顢欓悡搴ば�
核心提示:在使用Google或者百度进行中文搜索的时候,我们会发现搜索过程中URL地址栏会变成一串格式字符串编码,汉字GB2312和UTF-8的编码转换,我们编写程序经常也需要进行中文汉字到这类URL编码的转换,这里介绍两段相关的转换函数,而对于使用GB2312的百度搜索引擎来说,使用百度搜索“汉字”会变成另外的 http://

在使用Google或者百度进行中文搜索的时候,我们会发现搜索过程中URL地址栏会变成一串格式字符串编码,我们编写程序经常也需要进行中文汉字到这类URL编码的转换,这里介绍两段相关的转换函数。

对于使用UTF-8的Google搜索引擎来说,使用Google搜索“汉字”会变成http://www.google.com/search?q=%E6%B1%89%E5%AD%97 ,而对于使用GB2312的百度搜索引擎来说,使用百度搜索“汉字”会变成另外的 http://www.baidu.com/s?wd=%BA%BA%D7%D6 。下面的两段VB代码分别针对UTF-8(UTF8EncodeURI)和GB2312(GBKEncodeURI)进行了编码的转换。

   Private Sub command1_click()
     Debug.Print (UTF8EncodeURI("汉字"))
     Debug.Print (GBKEncodeURI("汉字"))
   End Sub


   Function UTF8EncodeURI(szInput)
     Dim wch, uch, szRet
     Dim x
     Dim nAsc, nAsc2, nAsc3

   If szInput = "" Then
       UTF8EncodeURI = szInput
       Exit Function
     End If

   For x = 1 To Len(szInput)
       wch = Mid(szInput, x, 1)
       nAsc = AscW(wch)

     If nAsc < 0 Then nAsc = nAsc + 65536

     If (nAsc And &HFF80) = 0 Then
         szRet = szRet & wch
       Else
         If (nAsc And &HF000) = 0 Then
           uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
           szRet = szRet & uch
         Else
           uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
           Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
           Hex(nAsc And &H3F Or &H80)
           szRet = szRet & uch
         End If
       End If
     Next

Tags:汉字 GB UTF

编辑录入:coldstar [复制链接] [打 印]
赞助商链接