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

本文介绍了一个用于将字符串转换为UTF-8编码格式的Visual Basic Script (VBScript) 函数。该函数能够处理多种字符集,并将其转换成符合UTF-8标准的格式,适用于网页和其他需要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  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值