您好朋友,感谢您关注xiaosilent,我在blogjava的博客已经停止更新,请访问http://kuan.fm了解我的最新情况,谢谢!
随笔-82  评论-133  文章-0  trackbacks-0

 

Function  toUTF8(szInput) 
    
Dim  wch, uch, szRet 
    
Dim  x 
    
Dim  nAsc, nAsc2, nAsc3 
    
' 如果输入参数为空,则退出函数 
     If  szInput  =   ""   Then  
        toUTF8 
=  szInput 
        
Exit   Function  
    
End   If  
    
' 开始转换 
      For  x  =   1   To   Len (szInput) 
        
' 利用mid函数分拆GB编码文字 
        wch  =   Mid (szInput, x,  1
        
' 利用ascW函数返回每一个GB编码文字的Unicode字符代码 
         ' 注:asc函数返回的是ANSI 字符代码,注意区别 
        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  
               
' GB编码文字的Unicode字符代码在0800 - FFFF之间采用三字节模版 
                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  
         
    toUTF8 
=  szRet 
End Function
posted on 2008-08-12 17:55 xiaosilent 阅读(853) 评论(0)  编辑  收藏 所属分类: 闲言碎语

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问