當前位置:首頁 » 編程軟體 » 漢字編解碼

漢字編解碼

發布時間: 2022-07-23 17:57:51

『壹』 編一個字元解碼程序。解碼規律:用原來字元後面的第六個字元代替原來的字元。例如:A代替G,原碼program

if(strlen(str) > 6)
{
for(int i;i <= strlen(str) - 1 - 6;i++)
{
str[i]=str[i+6];
}
}

『貳』 什麼是編碼什麼是解碼為什麼要編碼.解碼謝謝!

編碼是信息從一種形式或格式轉換為另一種形式的過程,也稱為計算機編程語言的代碼簡稱編碼。用預先規定的方法將文字、數字或其它對象編成數碼,或將信息、數據轉換成規定的電脈沖信號。編碼在電子計算機、電視、遙控和通訊等方面廣泛使用。編碼是信息從一種形式或格式轉換為另一種形式的過程。解碼,是編碼的逆過程。

解碼是一種用特定方法,把數碼還原成它所代表的內容或將電脈沖信號、光信號、無線電波等轉換成它所代表的信息、數據等的過程。解碼是受傳者將接受到的符號或代碼還原為信息的過程,與編碼過程相對應。

(2)漢字編譯碼擴展閱讀:

GB編碼標准中,比較常用的是GB2312和GBK兩種,GB2312是GBK的一個子集,GB2312編碼范圍是 0xA1A1 - 0xFEFE ,如果純粹的 GB2312編碼,處理起來是十分簡單的,但處理GBK字元集時有些小的提示,先說說GBK編碼的標准吧:

GBK 採用雙位元組表示,總體編碼范圍為 8140-FEFE,首位元組在 81-FE 之間,尾位元組在 40-FE 之間,剔除 xx7F 一條線。總計 23940 個碼位,共收入 21886 個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號 883 個。

『叄』 什麼是漢信碼

漢信碼
參考:
http://www.aidcchina.org
http://www.barcode123.com.cn
一、關於二維碼

隨著經濟全球化、信息網路化進程的加快,信息技術已成為推動我國經濟發展、帶動傳統產業實現產業優化升級以及工業化、現代化的重要手段。作為信息技術的重要組成部分,自動識別與數據採集技術實現了信息系統獲取信息的高效率與自動化,是促進信息有效利用的重要技術手段。

自20世紀90年代以來,條碼技術解決了計算機應用中數據採集的瓶頸,實現了信息的快速、准確獲取和傳輸,在我國商品流通、國際貿易、信息化建設和經濟發展中發揮了重要作用。條碼技術的應用已從單一的商品標識、POS結算,發展成為貫穿於生產、倉儲、配送、銷售、跟蹤與質量追溯的整個供應鏈和物流的全過程。應用領域已從成熟的商業POS結算,逐漸滲透到工業、交通運輸業、郵電通訊業、醫療衛生、安全檢查、票證管理以及軍事裝備等各個行業中。

人們通常所看到的印刷在商品包裝上的條碼是一維條碼,一維條碼在商業POS結算和流通等領域的廣泛應用,取得了顯著的社會效益和經濟效益。但由於受信息容量的限制,一維條碼通常只是對物品的類別進行標識,而不能對物品的屬性進行描述。在通用商品條碼的應用系統中,對商品的屬性信息,如生產日期、價格等的描述必須依賴於資料庫的支持。在沒
有預先建立商品資料庫或不便聯網的地方,用一維條碼表示漢字和圖像信息是不可能的。

隨著現代信息管理需求的不斷增加,迫切需要在條碼有限的幾何空間內表示更多的信息,以滿足千變萬化的信息表示的需要。二維條碼的出世,大大彌補了一維條碼的不足,並逐漸顯示出其技術的優勢。

二維條碼是在一維條碼無法滿足現代信息產業技術發展需求的前提下產生的。它解決了一直困擾人們的用條碼對「物品」進行描述的問題,使得條碼真正地成為信息存儲和識別的有效工具。它除具備一維條碼的優點外,同時還具有信息容量大、可靠性高、可表示圖像、漢字等多種文字信息、保密防偽性強等優點。

二維條碼的主要特徵是二維條碼符號在水平和垂直兩個方向均表示數據信息,可以實現不依賴於資料庫的支持,獨立存儲和標識信息。根據二維條碼的生成原理和結構形狀,可分類為行排式二維條碼和矩陣式二維條碼。行排式二維條碼是在一維條碼的基礎上,通過兩行或多行高度截短後的一維條碼的堆積,在增加行識別、錯誤糾正等特性的基礎上來實現信息表示,如圖所示為行排式四一七二維條碼。
矩陣式二維條碼在結構形狀上具有矩陣的特徵。它以計算機圖像處理技術為基礎,在矩陣相應元素位置上,用點(方點、圓點等)的出現表示二進制的「1」,點的不出現表示二進制的「0」,點的不同排列組合表示矩陣二維碼所表示的數據信息。如圖所示為矩陣式QR碼、漢信碼。

二、關於漢信碼

(一)漢信碼的開發
由中國物品編碼中心完成的國家「十五」重大科技專項——《二維條碼新碼制開發與關鍵技術標准研究》取得了突破性成果,研究成果包括:研究開發漢信碼新碼制、開發漢信碼生成軟體、開發漢信碼識讀技術及演算法、漢信碼硬體設備研發、漢信碼裝備研製、漢信碼通訊技術研發以及編制漢信碼國家標准等的系列工作。 2005年12月26日,由2位院士(倪光南、何德全)擔任組長的專家組對《二維條碼新碼制開發與關鍵技術標准研究》進行了鑒定,專家們一致認為:該課題攻克了二維條碼碼圖設計、漢字編碼方案、糾錯編解碼演算法、符號識讀與畸變矯正等關鍵技術,研製的漢信碼具有抗畸變、抗污損能力強,信息容量高等特點,達到了國際先進水平。專家們建議相關部門盡快將該課題的研究成果產業化,並積極組織試點及推廣,同時建議將漢信碼國家標准申報成為國際標准。

中國物品編碼中心在完成國家重大標准專項課題《二維條碼新碼制開發與關鍵技術標准研究》的基礎上,於2006年向國家知識產權局申請了《糾錯編碼方法》、《數據信息的編碼方法》、《二維條碼編碼的漢字信息壓縮方法》、《生成二維條碼的方法》、《二維條碼符號轉換為編碼信息的方法》、《二維條碼圖形畸變校正的方法》、等六項技術專利成果。

(二)漢信碼的技術特點
1. 超強的漢字表示能力(支持GB 18030中規定的160萬個漢字信息字元);
2. 漢字編碼效率高(採用12比特的壓縮比率,每個符號可表示12~2174個漢字字元);
3. 信息密度高(可以用來表示數字、英文字母、漢字、圖像、聲音、多媒體等一切可以二進制化的信息);
4. 信息容量大(可以將照片、指紋、掌紋、簽字、聲音、文字等凡可數字化的信息進行編碼);
5. 支持加密技術(是第一種在碼制中預留加密介面的條碼,它可以與各種加密演算法和密碼協議進行集成,因此具有極強的保密防偽性能);
6. 抗污損和畸變能力強(可以被附著在常用的平面或桶裝物品上,並且可以在缺失兩個定位標的情況下進行識讀);
7. 修正錯誤能力強(採用世界先進的數學糾錯理論,採用太空信息傳輸中常採用的Reed-Solomon糾錯演算法,使得漢信碼的糾錯能力可以達到30%。) ;
8.可供用戶選擇的糾錯能力(漢信碼提供四種糾錯等級,使得用戶可以根據自己的需要在8%、15%、23%和30%各種糾錯等級上進行選擇,從而具有高度的適應能力);
9. 符號無成本(利用現有的點陣、激光、噴墨、熱敏/熱轉印、制卡機等列印技術,即可在紙張、卡片、PVC、甚至金屬表面上印出漢信碼。由此所增加的費用僅是油墨的成本,可以真正稱得上是一種「零成本」技術);
10. 條碼符號的形狀可變(支持84個版本,可以由用戶自主進行選擇,最小碼僅有指甲大小);
11. 外形美觀(考慮到人的視覺接受能力,在視覺感官上具有突出的特點)。

(三)漢信碼的設備開發
2006年6月12日,針對漢信碼設備的開發召開了專家論證會,2006年6月29日正式立項。為了對漢信碼生成與識讀驗證系統中的技術進行細化與考量,通過進一步的深入研究,將原有的編碼演算法、解碼演算法、識讀演算法、糾錯演算法進行設備化的改造和實現,通過設備研製過程解決新問題,發現新演算法,整體提高漢信碼生成和識讀系統性能。通過多方合作解決了生成和識讀系統的軟硬體難題,研製成功可以生成和識讀漢信碼符號的系統與設備,並開展試點應用。

研究的內容:
(1)對漢信碼符號生成技術、漢信碼符號識讀技術的優化和改進的研究。
(2)嵌入式CMOS、在線式CMOS、手機的漢信碼識讀設備的樣機研發
(a)以PC為平台、以CMOS為採集端的在線式漢信碼識讀設備及軟體
(b)嵌入式CMOS攝像頭漢信碼識讀設備
(c)CMOS攝像頭漢信碼識讀手機
開發出的識讀設備:
嵌入式一款:AIDC-H16 手機一款:多普達830 手持設備

在線式三款:

嵌入式識讀設備:

(四)漢信碼應用試點和推廣
1、北京西南物流中心——漢信碼在圖書物流信息系統中的應用
北京西南物流中心:推動了圖書行業的漢信碼應用。與北京西南物流中心聯系的出版社、圖書批銷中心、書店、圖書館等,對漢信碼都非常感興趣,認為漢信碼的應用能夠極大的推動圖書行業的信息化進程,應用前景廣闊。
2、北京萬博網迅科技有限公司——漢信碼在鐵路重要物資質量跟蹤追溯系統中的應用。
漢信碼在特殊行業的應用(鐵路重要物資質量跟蹤追溯)。實現了金屬物體漢信碼的應用,攻克了漢信碼在金屬表面的刻蝕和識讀難題,極大的拓寬了漢信碼的應用領域。
3、天津天保岡谷國際物流有限公司——漢信碼在倉庫散貨管理中的應用
實現了漢信碼在倉庫散貨管理中的應用。規范了工作流程,提升了工作效率,並且初步實現了與上下游企業的業務數據交換,提升了工作效率,降低了成本,避免了數據錄入的差錯,經濟效益和社會效益都非常明顯。
4、國家電子發展基金項目「暢想供應鏈管理系統」——漢信碼在供應鏈軟體中的應用
漢信碼在供應鏈軟體中的應用。通過供應鏈軟體在企業中的應用,能夠進一步推動漢信碼在供應鏈上下游企業的應用。
5、天津市高職高專院校首屆「頂力杯」物流技能競賽中的應用
6、北京師范大學第二屆數學建模競賽中的漢信碼應用——漢信碼競賽/考試應用系統。
將漢信碼技術與高校專業人才培養結合在一起,不僅使參賽選手和競賽組織單位認識漢信碼,而且將漢信碼技術融於競賽的始終,取得了很好的社會效益。

三、漢信碼的應用前景
漢信碼作為一種矩陣式二維條碼,它具有漢字編碼能力強、抗污損、抗畸變、信息容量大等特點,是一種十分適合在我國廣泛應用的二維條碼,具有廣闊的市場前景。
1. 政府及主管部門
政府辦公、電子政務、國防軍隊、醫療衛生、公安出入境、公安消防、貴重物品防偽、海關管理、食品安全、產品追蹤、金融保險、質檢監察、交通運輸、人口管理、出版發行、票證/卡等。
2. 移動商務、互聯網及相關行業
移動通訊、票務業、廣告業、互聯網等;如手機條碼、移動通訊、電子票務/電子票證、電子商務等;
3. 供應鏈管理
裝備製造、物流業、零售業、流通業、物流供應鏈等。
4. 其他領域

四、二維碼的應用趨勢
據國際權威機構調查統計:未來3-5年二維條碼的市場將呈現高速增長的態勢。二維條碼作為一種全新的信息存儲、傳遞和識別技術,自誕生之日起就得到了世界上許多國家的關注。美國、德國、日本、墨西哥、埃及、哥倫比亞、巴西、菲律賓、南非、加拿大等國家不僅已將二維條碼應用於公安、外交、軍事等部門對各類證件的管理,而且也將二維條碼應用於海關、稅務等部門對各類報表、票據的管理,商業、交通運輸部門對商品及貨物運輸的管理,郵政部門對郵政包裹的管理,工業生產領域對工業生產線的自動化管理等。

在我國,二維條碼技術的推廣應用工作得到了國家領導、國家有關部門的大力支持及社會各界的極大關注。現已在汽車自動化生產線、武警車輛管理、銀行匯票上得到了初步應用(採用國外碼制),在1999年全國人大第九屆三次全體會議和全國政協第九屆三次全體會議期間,將二維條碼成功地應用在對隨行人員證件、記者證、旁聽證的管理,引起了與會代表和新聞界的極大興趣;我國香港特區已將二維條碼應用在特別行政區的護照上。

二維條碼這一高新技術的上述優勢特別適合我國政府辦公、軍隊、工商管理、金融稅務、物流、等眾多領域信息化的需求。在貨物運輸方面,由於二維條碼可以對物品進行描述,解決了貨物保險索賠、海關虛假報關的難題;在銀行金融系統,在支票、匯票使用二維條碼,銀行可以設置自己的密碼,防止假支票、匯票的出現;在工商管理系統,在營業執照上使用二維條碼,可有效地防止假執照,大大簡化年審驗照手續,有利於公共數據的傳輸和採集;在名貴字畫、珠寶上使用二維條碼,可直接存儲圖像,起到有效的防偽作用。

近年來,隨著手機攝像功能及智能化程度的日益提高,以「攝像」識別為基礎的二維條碼,開始進入了大眾應用領域,通過手機的攝像頭,普通人可以輕松地獲取二維條碼信息,可以自動地獲得上網服務等。因此,二維條碼技術的成功應用,將會極大地推動我國上述領域的信息化水平,提高管理效率,社會經濟效益顯著。

『肆』 漢信碼的漢信碼簡介

2005年12月26日,由2位院士(倪光南、何德全)擔任組長的專家組對《二維條碼新碼制開發與關鍵技術標准研究》進行了鑒定,專家們一致認為:該課題攻克了二維條碼碼圖設計、漢字編碼方案、糾錯編解碼演算法、符號識讀與畸變矯正等關鍵技術,研製的漢信碼具有抗畸變、抗污損能力強,信息容量高等特點,達到了國際先進水平。專家們建議相關部門盡快將該課題的研究成果產業化,並積極組織試點及推廣,同時建議將漢信碼國家標准申報成為國際標准。
中國物品編碼中心在完成國家重大標准專項課題《二維條碼新碼制開發與關鍵技術標准研究》的基礎上,於2006年向國家知識產權局申請了《糾錯編碼方法》、《數據信息的編碼方法》、《二維條碼編碼的漢字信息壓縮方法》、《生成二維條碼的方法》、《二維條碼符號轉換為編碼信息的方法》、《二維條碼圖形畸變校正的方法》、等六項技術專利成果。 1. 超強的漢字表示能力(支持GB 18030中規定的160萬個漢字信息字元);
2. 漢字編碼效率高(採用12比特的壓縮比率,每個符號可表示12~2174個漢字字元);
3. 信息密度高(可以用來表示數字、英文字母、漢字、圖像、聲音、多媒體等一切可以二進制化的信息);
4. 信息容量大(可以將照片、指紋、掌紋、簽字、聲音、文字等凡可數字化的信息進行編碼);
5. 支持加密技術(是第一種在碼制中預留加密介面的條碼,它可以與各種加密演算法和密碼協議進行集成,因此具有極強的保密防偽性能);
6. 抗污損和畸變能力強(可以被附著在常用的平面或桶裝物品上,並且可以在缺失兩個定位標的情況下進行識讀);
7. 修正錯誤能力強(採用世界先進的數學糾錯理論,採用太空信息傳輸中常採用的Reed-Solomon糾錯演算法,使得漢信碼的糾錯能力可以達到30%。) ;
8.可供用戶選擇的糾錯能力(漢信碼提供四種糾錯等級,使得用戶可以根據自己的需要在8%、15%、23%和30%各種糾錯等級上進行選擇,從而具有高度的適應能力);
9. 符號無成本(利用現有的點陣、激光、噴墨、熱敏/熱轉印、制卡機等列印技術,即可在紙張、卡片、PVC、甚至金屬表面上印出漢信碼。由此所增加的費用僅是油墨的成本,可以真正稱得上是一種「零成本」技術);
10. 條碼符號的形狀可變(支持84個版本,可以由用戶自主進行選擇,最小碼僅有指甲大小);
11. 外形美觀(考慮到人的視覺接受能力,在視覺感官上具有突出的特點)。

『伍』 C語言或MATLAB編寫一個漢字的編碼和解碼的程序代碼

幾百行吧
500元我幫你寫 zfb 15240582975

『陸』 啥是漢字全息碼

本發明的漢字全息碼電腦通用鍵盤輸入技術包括部首;筆畫:橫(一)、豎(丨)、點(丶)、撇(丿)提( );筆順:從上到下、從左到右、先橫後豎、先中間後兩邊。所述的部首選用100個部首字,按照其拼音的第一個字母標識在相應的公知電腦通用鍵盤的26個英文字母鍵上,其結構如下:英文鍵 漢語拼音的第一個字母碼Q [犬(大犭 豕)] (示礻)W [王]( )韋( )文(攵)E [耳(阝卩)]二( )兒兒 )R [人(亻)]日T 扌(手)] 亠(丄)土田Y [月(曰 )]乂又幺( )羊( )U [巫( )]I [衣( 衤)]O (去 碼功能鍵)P [爿(丬片)]丿( )A [廣]廠( )S [水( 氵)]丨( )十( )厶( )D [丁(丅 )]、( 丶)刀(刂)歹F G [弓]?6?5(丨乚 工( )骨H [火(灬)]-(一)禾
J [金(釒)幾(幾幾)巾彐( 彐 )己( )臼K [口]凵L [立]了力 (角)里( )Z [竹(?6?8)]止( )爪(爫 )走( 之辶廴)足(?6?4)隹X [心(忄 )]夕(攵)習(習)小( )C [艹( 屮)]寸車( )蟲V( )[魚(魚)]雨B [卜( )]八(丷八)勹( ?6?8 )匕冫( )貝( )白髟N [女]丶廿( )牛( ?6?4)M [木)冖(冂 ) (門)馬(馬)目(目四)*說明:[ ]內為鍵名部首,( )內為變化、繁體。
從上表可見,在這些英文鍵盤的26個鍵名中,V沒有相應的語音拼音改作 ,O沒有相應部首字,留作功能鍵。所述的筆畫還包括彎、捺、鉤,並以橫、豎、點、撇、彎、提、捺、鉤的順序編排,其中凡帶鉤的筆畫一律作鉤,所述的筆順還包括先撇後捺,先外後里再封口,並以先橫後豎,先撇後捺,先外後里,先外後里再封口先中間後兩邊的編碼規則編排。使用上述100個部首的漢字全息編碼全部採用英文鍵盤的四位代碼輸入方法。這種漢字編碼輸入技術,簡稱全息 碼。
與以往的漢字信息檢索輸入碼相比,本發明的漢字全息碼電腦通用鍵盤輸入技術,由於優先選用了常用的100個形、音、義皆全的並具有極強的組字能力的傳統部首以及簡易的筆畫規則,既符合人們常識和習慣,易於記憶,又可使漢字信息邊界清楚,具有簡單易學,操作方便,輸入速度快,重碼率低以及推廣容易等優點。
本發明比較以往的輸入碼,只要掌握100個常識部首字的第一個拼音字母,用相應的外文(英、俄、德、法、意、日、拉丁、國際音標等等)鍵盤配合,100個部首字第一個拼音字母、在電腦通用鍵盤的26個英文字母鍵上標識,使全世界學習、使用漢文的人共同使用;本發明的獨創性還在於它的簡約化,一切從簡從易,拋棄了所有人為的口訣和主觀地定角、定高低、定區位的死記硬背的繁文褥節;本發明還靈活、和諧地將字母碼與數碼結合起來,使各種用戶與機件都可通用。
本發明能廣泛用於通用小鍵盤電子計算機和各種漢語工具書,取得了電腦、辭書、資料、電信四者編碼的一致性。
採用本發明,大約只要化半天或一天時間就能編碼上機,並具有不需專門培訓,軟硬體成本低廉,適合於小鍵盤通用件,平均擊鍵次數少(每字平均約1.33次),重碼率低(低於千分之一)等優點。
此外,本發明至少還可以在以下十個方面應用:1,中文電腦打字、編輯、排版;2,電報碼與電傳碼統一於拉丁化字母,可由機器自動譯為中文;3,全國郵政編碼;4,中外文機器助譯;5,古漢語與白話文機器助譯;6,速記;7,縮寫;8,圖書編目、辭書索引用全息碼;9,速抄、縮錄;10,醫葯自我咨詢,及農林牧副漁工商財文軍政各行各業管理咨詢。
本發明使繁難的方塊漢字變成超過任何一種西文的全息碼且發掘了漢字內在的美質,使漢字變成科學、規范、精煉、整齊、優美的集約化的編碼,從而成為東西方文明大交流的一座宏偉的橋梁。
以下,將結合實施例對本發明作更詳細的敘述。
實施例1按100部首字漢語拼音的第一個字母順序排列。26個字母中,V改作 使用,O沒有相應的部首字,留作功能鍵使用。100個部首字都是常用字,第一個拼音字母為廣大用戶所熟知。基本筆畫出於唐宋以來沿習一千多年的「永字八法」,念作:橫、豎、撇、點、捺、挑、彎、勾。凡帶鉤的一律作勾。用8種筆畫顯然比5筆、6筆更符合漢字實際,又大大增加了區分重碼的離散度。
2,筆順的七條規則:五萬多個漢字,其形體千變萬化,但書寫的筆順只有下列七條簡單的規則。(「杞」字碼等編碼將筆順規則增加到10條以上,是不合理的。)初小文化程度的用戶,從小到老都應遵守這些規則,千百年來已成人們的習慣。無論從習慣上說,還是從視覺上說,起筆部首、續筆部首和接尾部首收筆部首、是最容易識別的。漢字中80%以上為形聲字,由形旁與聲旁兩個偏旁組成,取起筆部首、續筆部首和接尾部首、收筆部首,也就完全兼顧了左右或上下兩個偏旁,而不至於集中在一個偏旁里,充分發揮了加大離散度和去重碼的作用。
依筆順的7條習慣規則(先橫後豎、先撇後捺、先左後右、先上後下、先外後里、先外後里再封口、先中間後兩邊),將漢字分解為部首(包括筆畫);分解部首取最多筆畫者。
漢字筆順規則並舉例如下:(1)先橫後豎 「十」為「一丨」「干」為「一一丨」(2)先撇後捺 「人」為「丿 」「大」為「一丿 」(3)先上後下 「兀」為一丿乚」「區」為「一丿丶乚」(4)先左後右 「么」為「丿 丶」「仆」為「丿丨丨丶」(5)先外後里 「月」為「丿一一」「勺」為「丿丶」(6)先外後里再封口 「日」為「丨一一」「四」為「丨乛丿 一」
(7)先中間後兩邊 「小」為「亅′丶」「山」為「丨 丨」以上是為了說明筆順規則,將例字分解成筆畫,而本發明的編碼表,則是依筆順分解部首,每一步分解以最多筆畫的部首為原則。如「鞘」字分解為「廿口十小月」,而不是「一…一」等等。漢字中極個別字需倒轉紙張書版寫成反文,如「或」字等,仍依實際書寫的筆順分解部首。
3,編碼實例:(1)部首字:100部首表中的部首,既是最常用的部首,又基本是獨立的常識字。我反對把部首割裂成支離破碎的「字根」或「字元」,因為除了專門的編碼員外誰都不識。部首以音歸類,分一筆部首和組字能力較強的鍵名部首、一般部首。這樣區分目的,是為了下面給復合字編碼時減少重碼字,使用上述100部首的漢字全息碼電腦通用鍵盤輸入技術,其編碼步驟全部採用四個代碼輸入方法。在檢索單部首字時不必區分,都以部首拼音聲母、韻母的第一字母、起筆筆畫、續筆筆畫、末筆筆畫代碼擊鍵,正體、變體、簡體、繁體都這樣編碼,不能再分筆畫的擊O鍵。
因為一個拼音字母之下有幾個部首字,用上述三個筆畫具有8×8×8=512的離散度,不會有重碼。例如:一:HHOO 二:EHHO 三:SHHH::MDGO 門:MDSG 金:JPNH馬:MWGH 木:MHSN 目:MSWH在同一拼音字母下,由於離散度大,部首基本不重碼。
(2)兩個部首的復合字:也用4個拼音字母代碼,擊鍵4次。
本發明編碼不用字型區分,與王永明發明的「五筆字型」不同。王永明將字型分為左右型、上下型、雜型,實際上漢字字型遠不止3種,還有左中右、上中下、對角、交叉、半包、全包等多種,而且有時實難區分。信息利用的價值,在於信息的確定性。對於邊界模糊的、難以區分的信息,用了反而容易出錯。故本發明的全息碼將字型區分排除在外。
兩個部首的復合字,編碼如下:××××起起收末筆 筆筆部筆部首 首部末部末筆 筆首畫首畫這樣,在兩部首代碼相同的情況下,還有8×8=64種離散度,比王永明用3種字型和5種筆畫區分的3×5=15種離散度大4倍以上,因此重碼少得多。
如起、末兩部首為鍵名部首,可特殊對待,不需加筆畫來區分,都改為O,用移動O還可以調整重碼字使之不重碼。雙部首復合字編例:冰:BTSO 江:SOGH 扛:TOGO閏:MGWO 枉:MOWO 枚:MOWN(3)三個部首復合字:4個代碼依次為:起筆部首、起筆部首末筆畫、續筆部首、收筆部首。當起筆部首為鍵名部首時,連擊O鍵,不再擊其末筆筆畫代碼。例如:種:HDKS 桂:MOTT 花:CORB祝:QDKE 賀:LPKB 你:ROBX合:ROHK 歡:YDBR 樹:MOYC如遇極少的重碼字,可用插入O去重。0鍵去重碼的作用很大,因為用足26個字母比用25個字母增加離散度為264-254=66,351,大大減少重碼。
(4)四個以上部首的復合字:一般取起筆部首、起筆部首末筆畫、接尾部首、收筆部首。若遇起筆部首為鍵名部首時,第二碼改為續筆部首。
本發明充分利用26個字母,總離散度為26×26×26=456,976,對區分6萬個漢字已足夠。例:民:GGHG 族:TBRQ 麒:AWEB麟:AGWS 醇:XHLH(5)詞語文獻快速碼:本發明的全息碼,離散度達到456,976,除可輸入5萬多漢字外,還可輸入40萬條詞語。輸入詞語,同樣是用4個拼音字母,擊鍵4次,這就意味著可以大提高輸入單字的速度。漢字詞語有2、3、4、5…等單字構成,40萬條詞語平均約120萬字,原來要擊鍵120萬×4=480萬次,現在只要擊鍵160萬次,平均每個方塊字輸入擊鍵為1.33次,漢字具有單字構詞能力,一個方塊字相當於西文一個詞彙,這就大大優於任何一種西文詞語。
1).二個字的詞語編碼:2個字都分別取起筆部首與收筆部首(部首字改為末筆畫),為4個字母的等長碼。如詞語中有一字為鍵名部首字,作特殊對待,後加O碼,以區別末筆畫相同部首。如:海洋:SDSY 國家:MHDB 乙炔:GGHR人民:ROGG 幸福:TSQT 辛勤:LSNL2)三個字的詞語編碼:第一個字取首尾兩個部首,再取第二、三字的起始部首;如第一個字為部首字,取其起始部首、末筆筆畫;如第一個字為鍵名部首,則取其部首編碼加O。例如:地球儀:TGWR;金字塔:JODT;大世界:QNNT;不夜城:DBTT;游樂場:SHPT。
3)四個以上字的詞語:取一、二、三及末字起始部首。如:統一戰線:YHBY,胸有成竹:YSAZ;成竹在胸;AZSY;中華人民共和國:KRRM;諾貝爾獎金:YBBJ;馬列主義:MDTD;馬克思列寧主義。MSTD;魯迅全集:VGRZ;二十四史:ESMK;達爾文學說:QBWY;高能物理:TSNW;萬里長城:DLPT;萬里長征;DLPE。
當然,專用名詞還可劃分詞類編碼,如「中華 人民 共和 國」為「KSRS ROGG NBHK MWDH」,劃分後譯成方塊漢字同「中華人民共和國(KRRM)」。
在上述編碼輸入技術的基礎上,為了充分利用公知電腦通用鍵盤,另選用100個部首,它們以二位數字代碼代替拼音字母,安排在同一電腦通用鍵盤英文鍵上部的0-9共10個數字鍵上,其結構如下:數字鍵 部首部分 數字鍵 部首部分 數字鍵 部首部分 數字鍵部首部分01 一(一) 02 丨(丿) 03 丿( ) 04 丶( 丶)05 06 丿 07 ( ) 08 ?6?5( )09 二( ) 10 十( ) 11 廠( ) 12 丁( )13 卜(卜) 14 乂 15 八(丷 ) 16 人(亻)17 勹( ) 18 兒(兒兒) 19 幾(幾 ) 20 匕21 冫(丄) 22 ( ) 23 24 凵25 厶( ) 26 又 27 了 28 刀(刂)29 力 30 三( 彡巛) 31 干( ) 32 土33 工( ) 34 卄( 屮) 35 寸 36 扌( 手)37 口 38 山 39 巾 40 夕(久)41 廣 42 門 (門) 43 ( 彐 ) 44 屍(卩已)45 弓 46 己( ) 47 女 48 幺( )49 馬(馬) 50 小(忄 ) 51 習(習) 52 豐( )53 王 54 韋( ) 55 廿( ) 56 木
57 犬(大犭 豕) 58 歹 59 車( ) 60 止( )61 日 62 貝(貝) 63 牛( ) 64 爪(爫 )65 月(日 ) 66 67 文(攵) 68 火(灬)69 心(忄 ) 70 爿(丬片) 71 水 ( 氵) 72 示(示衤)73 石 74 目(目四) 75 田 76 禾77 白 78 立 79 穴 80 耳(阝卩)81 西(西) 82 蟲 83 竹(?6?8) 84 臼83 86 衣( 衤) 87 羊( ?6?2) 88 走( 之辶廴)89 巫( ) 90 里( ) 91 足(?6?4) 92 身93 言(訁) 94 面 95 隹 96 金(釒)97 魚(魚) 98 骨 99 食 (食飠) 00 髟這種輸入技術簡稱為「全息Ⅲ碼」,其編碼步驟除了部首有唯一的編碼,毋須用起末筆畫外,其它編碼順序則似「全息Ⅰ碼」。編碼步驟則全部採用六個代碼輸入方法。
「全息Ⅱ碼」與「全息Ⅰ碼」在總體上是一致的,都順應了群眾對部首、筆順、筆畫的常識、習慣,少利用拼音這一信息,是完全適應不識西文和拼音字母的用戶的,但它可用於只有10個數字鍵的更小的鍵盤,也適用於用數字代碼的電報碼。它的又一特點是離散度更大,為100×100×100=100萬,是「全息Ⅰ碼」離散度約46萬的2.2倍,可容納的字、詞更多而重碼更少。
2.編碼實例:
「全息Ⅲ碼」規則基本上同「全息Ⅰ碼」,但考慮到Ⅲ碼是兩個數字碼針對一個部首字,不需要在同一個拼音字中用起末筆畫來選定,故用*來填空位,重碼字亦可用*號並移動它來區分;括弧內的變體則加擊起筆筆畫、續筆筆畫。
(1)單部首字:在6位數中第一、二位擊其編號,後連擊空格鍵填空;括弧內的變體則加擊起筆筆畫、續筆筆畫。
一:01**** 二:09**** 三:30****:23**** 門:42****馬:49**** 木:56**** 目:74****(2)雙部首復合字:在6位數中第一至四位擊其編號,後連擊空格鍵填空冰:2271** 江:7133** 扛:3633**閏:4253** 杠:5633** 枚:5667**(3)三個以上部首復合字:在6位數中第一至六位編號,例種:763702 桂:56323 花:341620祝:723718 賀:293762 你:161750合:160137 歡:261716 樹:562635民:330108 族:211657 麒:410915麟:410702 醇:812701(5)詞語文獻快速碼:(1)雙字詞:取第一字起、末部首(如首字為部首字,則改為第二字起筆部首)、第二字末部首,例:海洋:710487 國家:230122 乙炔:086816人民:163308 幸福:321075 辛勤:781029(2)三字以上詞:取第一個起筆部首、第二字收筆部首、末字收筆部首。例:
地球儀:370414 金字塔:960137大世界:571709 不夜城:120504游樂場:715009統一戰線:480104 胸有成竹:656583成竹在胸:118324 中華人民共和國:371001諾貝爾獎金:936296 馬列主義:495814馬克思列寧主義:4910143.調整部首、去重碼與功能鍵(1)調整部首:部首是可以調整的。為了統一「全息Ⅰ碼」與「全息Ⅱ碼」,才統一用「100部首」的名稱。「Ⅰ碼」與「Ⅱ碼」也可不統一,「Ⅰ碼」可增減部首,甚至可用《康熙字典》的214個部首,也可用王竹溪的56個新部首,或更少的部首,但用100個左右為宜。「Ⅱ碼」可減少到100個以下,保持二位數,反之,亦可對部首字和數百個常用偏旁字編成三位數,取二個部首、偏旁字編成6位數碼,也可取三個部首、偏旁字編成9位數碼。只要查碼方便,有足夠的離散度就行。
如「三」為071,「劉」為271,那麼「瀏」為071271(六位碼)或071***271(九位碼)。其餘類推。
(2)去重碼:重碼率再低,總還有個別重碼字或重碼詞。「Ⅰ碼」可用擊0鍵並移動其位置或擊1、2、3……8、9、0數字鍵去重碼。「Ⅱ碼」可用*鍵去重碼,去重碼的讓碼以詞頻為序。
(3)功能鍵:提示,改錯,分簡繁體、正字、異體、訛體,中西文夾排等,都可使用多餘的鍵。
綜上所述,本發明的優點還在於易推廣、用途多。至少可以有下列幾項可供開發應用:1.中文電腦打字、編輯、排版;
2.電報碼與電傳碼統一於拉丁字明碼,並且比西文簡約,可由機器自動解碼為中文,可大大節約人工、費用;
3.全國郵政編碼統一,人人可自編,且使地址的字母化略寫與郵政編碼相一致。全國幾百個省、市、幾千個縣基本上不重碼。省、自治區、市、縣、鄉、鎮等行政區劃單位:北京:SBTX 上海:BHSD 天津:ERSG廣州:AODS 廣東:AOHX 廣西:AOXH雲南:ESSS 浙江:SDSG 江西:SGXH江蘇:SGCB 福建:QTJZ 湖北:SYSB湖南:SYSS 青海:FYSD 河南:SKSS海南:SDSS 新疆:LDGH 西藏:XHCD貴州:KBDS 寧夏:DDDX 台灣:SKSG四川:MHPS 遼寧:LZDD 吉林:SKMM河北:SGSB 山東:SSHX 山西:SSXH安徽:DNEW 黑龍江:LHSS 內蒙古:MRCS4.中外文機器助譯。中國人學外語、外國人學漢語,主要困難不在語法,而在於記大量詞彙。全息碼使漢字、漢語詞彙化為四個拉丁字母,這就比貯存西文容易。有了全息碼,中國人與外國人只要化很少的時間學會語法、字母拼音法則、編碼方法,就能藉助機器的詞彙對譯來進行對話交流。一個人要掌握幾門外語是很容易的。翻譯專業工作者也可省去大量查辭典的功夫。
5.古漢語與白話文機器助譯。原理同上。
6.速記。用全息碼速記統一、規范、迅速,對速記整理、翻譯也可藉助機器,省去大量時間。
7.縮寫。用全息碼可用1.33個拉丁字母代替一個方塊漢字,可大量節約篇幅時間。
8.圖書編目、辭書索引用全息碼,規范、簡便,不重碼,能消除難檢字。
9.速抄、縮錄。原理同速記、縮寫。
10.醫葯自我咨詢,及農村牧副漁工商文軍政各行各業管理咨詢。例如輸入①感冒②年齡③性別④肪膊⑤體溫⑥痰的濃與清⑦有否咳嗽等信息,即可輸出名醫名方。全息碼可作各種咨詢漢字卡。
以上10項都同本發明使繁難的方塊漢字變成超過任何一種西文的全息碼有關。本發明發掘了漢字內在的美質,使漢字變成科學、規范、精煉、優美的集約化的編碼,從而成為東西方文明大交流的一座宏偉的橋梁。

『柒』 誰能給我寫個簡單的漢字Base64解碼代碼並且告訴我原理。

這是編解碼的代碼,確認有效。
static size_t _base64Decode(unsigned char* pszNormal, const unsigned char* pczBase64, int nSize)
{
ASSERT(nSize > ZERO);

unsigned char* pszBase64Copy = NULL;
if( pczBase64 == pszNormal )
{
pszBase64Copy = new unsigned char[nSize]; ASSERT(pszBase64Copy);
::memcpy(pszBase64Copy, pczBase64, nSize);
}

size_t nsize = 0;
unsigned char* pucOrig = (NULL == pszBase64Copy) ? (unsigned char*)pczBase64 : pszBase64Copy;
unsigned char* pucDest = pszNormal;
for(int nNow = 0; nNow < nSize - 4; nNow += 4)
{
unsigned long ul = *(unsigned long*)pucOrig;
register int b0 = (_getBase64Index((char)B0(ul))<<2|_getBase64Index((char)B1(ul))<<2>>6)&MAX_BYTE;
register int b1 = (_getBase64Index((char)B1(ul))<<4|_getBase64Index((char)B2(ul))<<2>>4)&MAX_BYTE;
register int b2 = (_getBase64Index((char)B2(ul))<<6|_getBase64Index((char)B3(ul))<<2>>2)&MAX_BYTE;

*((unsigned long*)pucDest) = b0|b1<<8|b2<<16;
pucOrig += 4;
pucDest += 3;
nsize += 3;
}

if( nNow < nSize )
{
int nRest = nSize - nNow;
unsigned long ul = 0;
for(int j = 0; j < nRest; ++j){
*(((unsigned char*)&ul)+j) = *pucOrig++;
}

register int b0 = (_getBase64Index((char)B0(ul))<<2|_getBase64Index((char)B1(ul))<<2>>6)&MAX_BYTE;
*pucDest++ = b0;
nsize++;

if( (_EQ_ != B1(ul)) && (_EQ_ != B2(ul)) )
{
register int b1 = (_getBase64Index((char)B1(ul))<<4|_getBase64Index((char)B2(ul))<<2>>4)&MAX_BYTE;
*pucDest++ = b1;
nsize++;
}

if( (_EQ_ != B2(ul)) && (_EQ_ != B3(ul)) )
{
register int b2 = (_getBase64Index((char)B2(ul))<<6|_getBase64Index((char)B3(ul))<<2>>2)&MAX_BYTE;
*pucDest++ = b2;
nsize++;
}

}

*pucDest = _EOS_;

if( pszBase64Copy )
{
delete[] pszBase64Copy;
pszBase64Copy = NULL;
}

return nsize;
}

static int _base64Encode(unsigned char* pszBase64, const unsigned char* pczNormal, int nSize)
{
ASSERT(nSize > ZERO);

unsigned char* pszNormalCopy = NULL;
if( pczNormal == pszBase64 )
{
pszNormalCopy = new unsigned char[nSize];
::memcpy(pszNormalCopy, pczNormal, nSize);
}

size_t nsize = 0;
unsigned char* pucOrig = (NULL == pszNormalCopy) ? (unsigned char*)pczNormal : pszNormalCopy;
unsigned char* puc64 = pszBase64;
for(int nNow = 0; nNow < nSize - 3; nNow += 3)
{
unsigned long ul = *(unsigned long*)pucOrig;
register int b0 = _getBase64Char((B0(ul) >> 2) & 0x3F);
register int b1 = _getBase64Char((B0(ul) << 6 >> 2 | B1(ul) >> 4) & 0x3F);
register int b2 = _getBase64Char((B1(ul) << 4 >> 2 | B2(ul) >> 6) & 0x3F);
register int b3 = _getBase64Char((B2(ul) << 2 >> 2) & 0x3F);
*((unsigned long*)puc64) = b0 | b1 << 8 | b2 << 16 | b3 << 24;
nsize += 4;
puc64 += 4;
pucOrig += 3;
}

if( nNow < nSize )
{
int nRest = nSize - nNow;
unsigned long ul = 0;
for(int j = 0; j < nRest; ++j){
*(((unsigned char*)&ul) + j) = *pucOrig++;
}

puc64[0] = _getBase64Char((B0(ul) >> 2) & 0x3F);
puc64[1] = _getBase64Char((B0(ul) << 6 >> 2 | B1(ul) >> 4) & 0x3F);
puc64[2] = (nRest > 1)?_getBase64Char((B1(ul) << 4 >> 2 | B2(ul) >> 6) & 0x3F) : _EQ_;
puc64[3] = (nRest > 2)?_getBase64Char((B2(ul) << 2 >> 2) & 0x3F) : _EQ_;
puc64 += 4;
nsize += 4;
}

*puc64 = _EOS_;

if( pszNormalCopy )
{
delete[] pszNormalCopy;
pszNormalCopy = NULL;
}

return nsize;
}
在網路傳輸的時候,需要使用多位元組編碼,才能得到有效的漢字。
也就是說,當你傳輸一個漢字的時候,應該先把它用多位元組編碼,然後在接收端再把它還原為之前的編碼。
另外,能否編輯中文,與操作系統的字元集有關,如果是中文操作系統的話,默認的是中文字元集,這是可以修改的,如果你修改成其他西文字元集的話,對漢字的編輯可能就會出現亂碼。

『捌』 解碼的編碼體系

我們日常接觸到的文件分ASCII和Binary兩種。ASCII是「美國信息交換標准編碼」的英文字頭縮寫,可稱之為「美標」。美標規定了用從0到127的128個數字來代表信息的規范編碼,其中包括33個控制碼,一個空格碼,和94個形象碼。形象碼中包括了英文大小寫字母,阿拉伯數字,標點符號等。我們平時閱讀的英文電腦文本,就是以形象碼的方式傳遞和存儲的。美標是國際上大部分電腦的通用編碼。
然而電腦中的一個字元大都是用一個八位數的二進制數字表示。這樣每一字元便可能有256個不同的數值。由於美標只規定了128個編碼,剩下的另外128個數碼沒有規范,各家用法不一。另外美標中的33個控制碼,各廠家用法也不盡一致。這樣我們在不同電腦間交換文件的時候,就有必要區分兩類不同的文件。第一類文件中每一個字都是美標形象碼或空格碼。這類文件稱為「美標文本文件」(ASCII Text Files),或略為「文本文件」,通常可在不同電腦系統間直接交換。第二類文件,也就是含有控制碼或非美標碼的文件,通常不能在不同電腦系統間直接交換。這類文件有一個通稱,叫「二進制文件」(Binary Files)。 「國標」是「中華人民共和國國家標准信息交換用漢字編碼」的簡稱。國標表(基本表)把七千餘漢字、以及標點符號、外文字母等,排成一個94行、94列的方陣。方陣中每一橫行叫一個「區」,每個區有九十四個「位」。一個漢字在方陣中的坐標,稱為該字的「區位碼」。例如「中」字在方陣中處於第54區第48位,它的區位碼就是5448。
其實94這個數字。它是美標中形象碼的總數。國標表沿用這個數字,本意大概是要用兩個美標形象符代表一個漢字。由於美標形象符的編碼是從33到126,漢字區、位碼如果各加上32,就會與美標形象碼的范圍重合。如上例「中」字區、位碼加上32後,得86,80。這兩個數字的十六進制放在一起得5650,稱為該字的「國標碼」,而與其相對應的兩個美標符號,VP,也就是「中」字的「國標符」了。
這樣就產生了一個如何區分國標符與美標符的問題。在一個中英文混用的文件里,「VP」到底代表「中」字呢,還是代表某個英文字頭縮寫?電子工業部第六研究所開發CCDOS的時候,使用了一個簡便的解決方案:把國標碼的兩個數字各加上128,上升到非美標碼的位置。(改變後的國標碼,習慣上仍叫「國標」。)
這個方案固然解決了原來的問題,可是新的問題隨之產生。中文文件成了「二進制文件」,既不能可靠地在不同電腦系統間交換,也不與市場上大部分以美標符號為設計對象的軟體兼容。
為了區分以上兩種「國標」,我們把原與美標形象碼重合的國標碼稱為「純國標」 ,而把CCDOS加上128的國標碼稱為「准國標」。 GBK碼是GB碼的擴展字元編碼,對多達2萬多的簡繁漢字進行了編碼,簡體版的Win95和Win98都是使用GBK作系統內碼。
GB是國標,K是漢字「擴展」的漢語拼音第一個字母。其實,GBK是又一個漢字編碼標准,全稱《漢字內碼擴展規范》(Chinese Internatial Code Specification),1995年頒布。
從實際運用來看,微軟自win95簡體中文版開始,系統就採用GBK代碼,它包括了TrueType宋體、黑體兩種GBK字型檔(北京中易電子公司提供),可以用於顯示和列印,並提供了四種GBK漢字的輸入法。此外,瀏覽器IE4.0簡體、繁體中文版內部提供了一個GBK-BIG5代碼雙向轉換功能。此外,微軟公司為IE提供的語言包中,簡體中文支持(Simplified Chinese Language Support Kit)的兩種字型檔宋體、黑體,也是GBK漢字(珠海四通電腦排版系統開發公司提供)。其他一些中文字型檔生產廠商,也開始提供TrueType或PostScriptGBK字型檔。
許多外掛式的中文平台,如南極星、四通利方(Richwin)等,提供GBK碼的支持,包括字型檔、輸入法和GBK與其他中文代碼的轉化器。
互聯網方面,許多網站網頁使用GBK代碼。
但是多數搜索引擎都不能很好的支持GBK漢字搜索,大陸地區的搜索引擎有些能不完善的支持GBK漢字檢索。
GBK向下與GB-2312編碼兼容,向上支持ISO 10646.1國際標准,是前者向後者過渡的一個承啟標准。
GBK規范收錄了ISO 10646.1中的全部CJK漢字和符號,並有所補充。具體包括:GB 2312中的全部漢字、非漢字元號;GB 13000.1中的其他CJK漢字。以上合計20902個GB化漢字;《簡化總表》中未收入GB 13000.1的52個漢字;《康熙字典》以及《辭海》中未被收入GB 13000.1的28個部首及重要構件;13個漢字結構符;BIG-5中未被GB 2312收入、但存在於GB 13000.1的139個圖形符號;GB 12345增補的6個拼音符號;GB 12345增補的19個豎排圖形符號(GB 12345較GB 2312增補豎排標點符號29個,其中10個未被GB 13000.1收入,故GBK亦不收);從GB 13000.1的CJK兼容區挑選出的21個漢字;GB 13000.1收入的31個IBM OS/2專用符號。GBK亦採用雙位元組表示,總體編碼范圍為0x8140~0xFEFE之間,首位元組在0x81~0xFE之間,尾位元組在0x40~0xFE之間,剔除0x××7F一條線,總計23940個碼位,共收入21886個漢字和圖形符號,其中漢字(包括部首和構件)21003個,圖形符號883個。 1993年,國際標准ISO10646 定義了通用字元集(Universal Character Set,UCS)。UCS 是所有其他字元集標準的一個超集。它保證與其他字元集是雙向兼容的。就是說,如果你將任何文本字元串翻譯到 UCS格式,然後再翻譯回原編碼,你不會丟失任何信息。
UCS 包含了用於表達所有已知語言的字元。不僅包括拉丁語,希臘語,斯拉夫語,希伯來語,阿拉伯語,亞美尼亞語和喬治亞語的描述, 還包括中文,日文和韓文這樣的象形文字,以及平假名,片假名,孟加拉語,旁遮普語果魯穆奇字元(Gurmukhi), 泰米爾語, 印.埃納德語(Kannada),Malayalam,泰國語,寮國語, 漢語拼音(Bopomofo), Hangul,Devangari,Gujarati, Oriya,Telugu 以及其它語種。對於還沒有加入的語言,由於正在研究怎樣在計算機中最好地編碼它們, 因而最終它們都將被加入。這些語言包括Tibetian,高棉語,Runic(古代北歐文字),衣索比亞語, 其他象形文字,以及各種各樣的印-歐語系的語言,還包括挑選出來的藝術語言比如 Tengwar,Cirth 和 克林貢語(Klingon)。UCS 還包括大量的圖形的,印刷用的,數學用的和科學用的符號,包括所有由 TeX,Postscript, MS-DOS,MS-Windows, Macintosh, OCR 字體, 以及許多其他字處理和出版系統提供的字元。
ISO 10646 定義了一個 31 位的字元集。然而,在這巨大的編碼空間中,迄今為止只分配了前 65534 個碼位 (0x0000 到 0xFFFD)。這個UCS的16位子集稱為基本多語言面 (Basic Multilingual Plane,BMP)。將被編碼在16位BMP以外的字元都屬於非常特殊的字元(比如象形文字),且只有專家在歷史和科學領域里才會用到它們。按當前的計劃,將來也許再也不會有字元被分配到從0x000000到0x10FFFF這個覆蓋了超過100萬個潛在的未來字元的 21 位的編碼空間以外去了。ISO 10646-1標准第一次發表於1993年,定義了字元集與 BMP 中內容的架構。定義 BMP以外的字元編碼的第二部分 ISO 10646-2 正在准備中,但也許要過好幾年才能完成。新的字元仍源源不斷地加入到 BMP 中,但已經存在的字元是穩定的且不會再改變了。
UCS 不僅給每個字元分配一個代碼,而且賦予了一個正式的名字。表示一個 UCS 或 Unicode 值的十六進制數,通常在前面加上 「U+」,就象U+0041 代表字元「拉丁大寫字母A」。UCS字元U+0000到U+007F 與 US-ASCII(ISO 646) 是一致的, U+0000 到 U+00FF 與 ISO 8859-1(Latin-1) 也是一致的。從 U+E000 到 U+F8FF,已經BMP 以外的大范圍的編碼是為私用保留的。
1993年,ISO10646中定義的USC-4 (Universal Character Set) ,使用了4 個位元組的寬度以容納足夠多的相當可觀的空間,但是這個過於肥胖的字元標准在當時乃至現在都有其不現實的一面,就是會過分侵佔存儲空間並影響信息傳輸的效率。與此同時,Unicode 組織於約 10 年前以 Universal,Unique和Uniform 為主旨也開始開發一個16位字元標准, 為避免兩種16位編碼的競爭,1992年兩家組織開始協商,以期折衷尋找共同點,這就是今天的 UCS-2 (BMP,Basic Multilingual Plane,16bit) 和Unicode,但它們仍然是不同的方案。 關於Unicode我們需要追溯一下它產生的淵源。
當計算機普及到東亞時,遇到了使用表意字元而非字母語言的中、日、韓等國家。在這些國家使用的語言中常用字元多達幾千個,而原來字元採用的是單位元組編碼,一張代碼頁中最多容納的字元只有28=256個,對於使用表意字元的語言是在無能為力。既然一個位元組不夠,自然人們就採用兩個位元組,所有出現了使用雙位元組編碼的字元集(DBCS)。不過雙位元組字元集中雖然表意字元使用了兩個位元組編碼,但其中的ASCII碼和日文片假名等仍用單位元組表示,如此一來給程序員帶來了不小的麻煩,因為每當設計到DBCS字元串的處理時,總是要判斷當中的一個位元組到底表示的是一個字元還是半個字元,如果是半個字元,那是前一半還是後一半?由此可見DBCS並不是一種非常好的解決方案。
人們在不斷尋找這更好的字元編碼方案,最後的結果就是Unicode誕生了。Unicode其實就是寬位元組字元集,它對每個字元都固定使用兩個位元組即16位表示,於是當處理字元時,不必擔心只處理半個字元。
目前,Unicode在網路、Windows系統和很多大型軟體中得到應用。
GB編碼標准中,比較常用的是GB2312和GBK兩種,GB2312是GBK的一個子集,GB2312編碼范圍是 0xA1A1 - 0xFEFE ,如果純粹的 GB2312編碼,處理起來是什分簡單的,但處理GBK字元集時有些小的提示,先說說GBK編碼的標准吧:
GBK 採用雙位元組表示,總體編碼范圍為 8140-FEFE,首位元組在 81-FE 之間,尾位元組在 40-FE 之間,剔除 xx7F 一條線。總計 23940 個碼位,共收入 21886 個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號 883 個。

『玖』 請問一個關於URL中漢字編碼解碼的問題

URLDecoder.decode(url, "utf-8");
url是你的地址,
解碼完之後,接收一下。應該可以了。
編碼之後,記得解碼。
import java.net.URLDecoder;
一個解碼,
import java.net.URLEncoder;
一個編碼。
如果遇到無法解碼,在頁面上將%替換成!
URLEncoder.encode(input,"UTF-8").replaceAll("%","!"),
然後在後台,再轉換回來,String的replaceAll("!","%")。

『拾』 電報通信的漢字電報碼

中國漢字的數量很大,故採用兩次編碼,即每個漢字由一組(4個)數字表示(稱為漢字的電報碼),再按數字的莫爾斯電碼或5單位電碼發送和接收。收下的成組數字需要譯成漢字,這種解碼工作可用中文解碼機來完成。

熱點內容
如何編譯java文件 發布:2025-02-06 12:05:58 瀏覽:234
九九乘法編程 發布:2025-02-06 12:05:05 瀏覽:516
台式機忘記開機密碼怎麼辦 發布:2025-02-06 11:58:01 瀏覽:868
android刷新按鈕 發布:2025-02-06 11:57:17 瀏覽:585
存儲過程有輸入參數和輸出參數 發布:2025-02-06 11:55:32 瀏覽:96
成績評選演算法 發布:2025-02-06 11:42:51 瀏覽:994
資料庫測試數據 發布:2025-02-06 11:31:05 瀏覽:821
球頭軸編程 發布:2025-02-06 11:29:36 瀏覽:280
為什麼安卓系統不能收縮許可權 發布:2025-02-06 11:27:58 瀏覽:730
演算法4視頻 發布:2025-02-06 11:19:20 瀏覽:934