VB 中文转utf-8的函数 ,应用于搜索引擎

Public   Function   UTF8Encode(ByRef   szString   As   String)   As   String  
                Dim   szChar       As   String  
                Dim   szTemp       As   String  
                Dim   szCode       As   String  
                Dim   szHex         As   String  
                Dim   szBin         As   String  
                Dim   iCount1     As   Integer  
                Dim   iCount2     As   Integer  
                Dim   iStrLen1   As   Integer  
                Dim   iStrLen2   As   Integer  
                Dim   lResult     As   Long  
                Dim   lAscVal     As   Long  
                szString   =   Trim$(szString)  
                iStrLen1   =   Len(szString)  
                For   iCount1   =   1   To   iStrLen1  
                        szChar   =   Mid$(szString,   iCount1,   1)  
                        lAscVal   =   AscW(szChar)  
                        If   lAscVal   >=   &H0   And   lAscVal   <=   &HFF   Then  
                              If   (lAscVal   >=   &H30   And   lAscVal   <=   &H39)   Or   _  
                                    (lAscVal   >=   &H41   And   lAscVal   <=   &H5A)   Or   _  
                                    (lAscVal   >=   &H61   And   lAscVal   <=   &H7A)   Then  
                                    szCode   =   szCode   &   szChar  
                              Else  
                                    szCode   =   szCode   &   "%"   &   Hex(AscW(szChar))  
                              End   If  
                        Else  
                              szHex   =   Hex(AscW(szChar))  
                              iStrLen2   =   Len(szHex)  
                              For   iCount2   =   1   To   iStrLen2  
                                      szChar   =   Mid$(szHex,   iCount2,   1)  
                                      Select   Case   szChar  
                                                    Case   Is   =   "0"  
                                                              szBin   =   szBin   &   "0000"  
                                                    Case   Is   =   "1"  
                                                              szBin   =   szBin   &   "0001"  
                                                    Case   Is   =   "2"  
                                                              szBin   =   szBin   &   "0010"  
                                                    Case   Is   =   "3"  
                                                              szBin   =   szBin   &   "0011"  
                                                    Case   Is   =   "4"  
                                                              szBin   =   szBin   &   "0100"  
                                                    Case   Is   =   "5"  
                                                              szBin   =   szBin   &   "0101"  
                                                    Case   Is   =   "6"  
                                                              szBin   =   szBin   &   "0110"  
                                                    Case   Is   =   "7"  
                                                              szBin   =   szBin   &   "0111"  
                                                    Case   Is   =   "8"  
                                                              szBin   =   szBin   &   "1000"  
                                                    Case   Is   =   "9"  
                                                              szBin   =   szBin   &   "1001"  
                                                    Case   Is   =   "A"  
                                                              szBin   =   szBin   &   "1010"  
                                                    Case   Is   =   "B"  
                                                              szBin   =   szBin   &   "1011"  
                                                    Case   Is   =   "C"  
                                                              szBin   =   szBin   &   "1100"  
                                                    Case   Is   =   "D"  
                                                              szBin   =   szBin   &   "1101"  
                                                    Case   Is   =   "E"  
                                                              szBin   =   szBin   &   "1110"  
                                                    Case   Is   =   "F"  
                                                              szBin   =   szBin   &   "1111"  
                                                    Case   Else  
                                      End   Select  
                              Next   iCount2  
                              szTemp   =   "1110"   &   Left$(szBin,   4)   &   "10"   &   Mid$(szBin,   5,   6)   &   "10"   &   Right$(szBin,   6)  
                              For   iCount2   =   1   To   24  
                                      If   Mid$(szTemp,   iCount2,   1)   =   "1"   Then  
                                            lResult   =   lResult   +   1   *   2   ^   (24   -   iCount2)  
                                      Else  
                                            lResult   =   lResult   +   0   *   2   ^   (24   -   iCount2)  
                                      End   If  
                              Next   iCount2  
                              szTemp   =   Hex(lResult)  
                              szCode   =   szCode   &   "%"   &   Left$(szTemp,   2)   &   "%"   &   Mid$(szTemp,   3,   2)   &   "%"   &   Right$(szTemp,   2)  
                        End   If  
                        szBin   =   vbNullString  
                        lResult   =   0  
                Next   iCount1  
                UTF8Encode   =   szCode  
  End   Function  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值