校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > ASP實現GB2312字符與區位碼的相互轉換的代碼

ASP實現GB2312字符與區位碼的相互轉換的代碼

熱門標簽:蘭州智能語音電銷機器人功能 離線電子地圖標注軟件注冊 外呼回撥系統圖片 辦理400電話一年多少錢 為什么外呼系統需要預存話費呢 寧夏怎么申請400電話 常用地圖標注范圍點 咸陽銷售外呼系統 企數外呼系統能用多久
研究編碼,得知GB2312編碼與區位碼的關系,嘗試之后,得此程序。
搜索,似乎沒人寫,故發此地。
原創首發:
http://bbs.blueidea.com
http://mytju.com/classcode/
任意轉載,任意使用。
1.簡述
(1)GB2312標準的定義,其實就是區位碼。
共94行,94列,行就是區號,列就是位號。
如“啊”字區號為16,位號為01,它的區位碼就是1601。
(2)每個字符由區號+位號組成,共占兩個字節。
每個字節都是01-94,與通信控制符0-31沖突,
所以,將區號和位號分別加上32,以避免沖突。
(3)由上,每個字節是33-126,與ASCII編碼0-127沖突,
所以將最高位置為1,也就是加上128,以避免沖突。
所以,最終,每個字節為161-254。
2。實現
原理很簡單,加加減減即可實現。
直接將我完成的函數帖于此處。

復制代碼 代碼如下:

'----取得區位碼的函數--------------------- 
Function CharToQWM(byVal str) 
    dim sHex,sHigh,sLow,iLow,iHigh,sResult 
    sHex=Hex(Asc(str)) '取得字符的內碼的編碼,如B0A1,此編碼是正確的順序,不必交換高低位。 
    sHigh=Left(sHex,2) '取得編碼的高位,如B0。 
    sLow=Right(sHex,2) '取得編碼的低位,如A1。 
    'GB2312內碼范圍為HA1A1--HFEFE,每個字節都在A1-FE之間。 
    if NOT (sHigh>="A1" AND sHigh="FE") then 
        CharToQWM="" 
        Exit Function 
    end if 
    if NOT (sLow>="A1" AND sLow="FE") then 
        CharToQWM="" 
        Exit Function 
    end if 
    'GB交換碼僅使用了7位,高位置1,即為內碼。反過來就是將高位置0,可得到交換碼。 
    iLow=Clng("H"  sLow)-128  
    iHigh=Clng("H"  sHigh)-128 
    '區位碼與控制碼0-31沖突,所以加上32之后,即是交換碼。反過來減去32即可。 
    iLow=iLow-32 
    iHigh=iHigh-32 
    'OK,區位碼已經得到。 
    sResult="" 
    if iHigh10 then 
        sResult = sResult  "0"  Cstr(iHigh) 
    else 
        sResult = sResult  Cstr(iHigh) 
    end if 
    if iLow10 then 
        sResult = sResult  "0"  Cstr(iLow) 
    else 
        sResult = sResult  Cstr(iLow) 
    end if 
    CharToQWM=sResult 
End Function 
'----根據區位碼得到字符的函數--------------------- 
Function QWMToChar(byVal str,byVal doCheckFlg) 
    dim sHex,sHigh,sLow,iLow,iHigh,sResult 
    '-------------檢查輸入格式-------------- 
    if doCheckFlg then 
        if Len(str)>4 then 
            QWMToChar="" 
            Exit Function 
        end if 
        '--4位必須都是數字 
        dim i,iAsc 
        for i=1 to 4 
            iAsc=Asc(mid(str,i,1)) 
            if NOT (iAsc>=H30 AND iAsc=H39) then 
                QWMToChar="" 
                Exit Function 
            end if 
        next 
        '--區號,位號都要在01-94之間 
        iHigh=Clng(Left(str,2)) 
        iLow=Clng(Right(str,2)) 
        if NOT (iHigh>=1 AND iHigh=94) then 
            QWMToChar="" 
            Exit Function 
        end if 
        if NOT (iLow>=1 AND iLow=94) then 
            QWMToChar="" 
            Exit Function 
        end if 
    end if 
    '-------------檢查完畢------------------ 
    iHigh=Clng(Left(str,2)) 
    iLow=Clng(Right(str,2)) 
    iHigh=iHigh + 32 + 128 
    iLow=iLow + 32 + 128 
    sHex=Hex(iHigh)  Hex(iLow) 
    QWMToChar=Chr("H"  sHex) 
End Function 

使用方法:
-----------------------------------------------------------------------------------------------------
復制代碼 代碼如下:

dim i,str,sChar 
str="娃哈哈" 
for i=1 to Len(str) 
       sChar=Mid(str,i,1)  
       Response.write sChar  ":"  CharToQWM(sChar) "br>" 
next 
----------------------------------------------------------------------------------------------------- 
dim str 
str="1601|1602|1603} 
if instr(str,"|")>0 then 
       dim s,sCharArray,i 
       sCharArray=Split(str,"|") 
       for i=0 to Ubound(sCharArray) 
              s=s  QWMToChar(trim(sCharArray(i)),True) 
       next 
       str=s 
else 
       str=QWMToChar(str,True) 
end if 
.......
-----------------------------------------------------------------------------------------------------
3.在線使用
http://www.mytju.com/classcode/tools/quweima.asp
進入以上網址即可在線查閱。
您可能感興趣的文章:
  • PHP中實現漢字轉區位碼應用源碼實例解析

標簽:麗江 咸陽 昌都 家電維修 溫州 昆明 泰州 鐵嶺

巨人網絡通訊聲明:本文標題《ASP實現GB2312字符與區位碼的相互轉換的代碼》,本文關鍵詞  ASP,實現,GB2312,字符,與,區位碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP實現GB2312字符與區位碼的相互轉換的代碼》相關的同類信息!
  • 本頁收集關于ASP實現GB2312字符與區位碼的相互轉換的代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 孟津县| 合阳县| 买车| 随州市| 庆安县| 湘西| 大余县| 天全县| 马尔康县| 额济纳旗| 恩施市| 绥阳县| 渭源县| 镇安县| 永登县| 宝坻区| 普格县| 肃宁县| 封开县| 景泰县| 商水县| 延长县| 伽师县| 博客| 香港 | 连州市| 汝州市| 灌阳县| 江孜县| 禄丰县| 礼泉县| 象州县| 长治县| 德化县| 沙田区| 和林格尔县| 潞城市| 化德县| 牡丹江市| 绥宁县| 漳州市|