国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      嵌入式設(shè)備中Unicode編碼字符串的存儲方法

      文檔序號:6373873閱讀:604來源:國知局
      專利名稱:嵌入式設(shè)備中Unicode編碼字符串的存儲方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種嵌入式設(shè)備中Unicode編碼字符串的存儲方法,屬于計算機(jī)數(shù)據(jù)存儲領(lǐng)域。
      背景技術(shù)
      隨著計算機(jī)存儲領(lǐng)域技術(shù)的發(fā)展,在嵌入式設(shè)備中,Unicode編碼的應(yīng)用越來越廣泛。Unicode是一種字符編碼方案,由國際組織設(shè)計,可以容納全世界所有語言文字的編碼方案。通常Unicode的實(shí)現(xiàn)方式為UTF-16編碼。UTF的全稱是Unicode Tra nsformationFormat,即Unicode轉(zhuǎn)換格式。UTF-16將每個字符編碼為兩個字節(jié),這就在節(jié)省空間和簡化編碼方面兩個目標(biāo)之間,提供了一個很好的折衷,得到了廣泛的應(yīng)用。在嵌入式軟件開發(fā)環(huán)境中,一般使用多字節(jié)字符串,即ANSI編碼。不同的國家和地區(qū)制定了不同的標(biāo)準(zhǔn),由此產(chǎn)生了 GB2312,BIG5, JIS等各自的編碼標(biāo)準(zhǔn)。這些使用2個字節(jié)來代表一個字符的各種漢字延伸編碼方式,稱為ANSI編碼。在簡體中文系統(tǒng)下,ANSI編碼代表GB2312編碼,在日文操作系統(tǒng)下,ANSI編碼代表JIS編碼。不同ANSI編碼之間互不兼容,當(dāng)信息在國際間交流時,無法將屬于兩種語言的文字,存儲在同一段ANSI編碼的文本中。目前在在嵌入式設(shè)備中,以Unicode編碼的字符串通常是直接存儲,當(dāng)使用以Unicode編碼的字符串時,采用以下2種方式進(jìn)行Unicode與ANSI編碼字符串的轉(zhuǎn)換①在 Win32 環(huán)境下使用 MultibyteToWideChar 和 WideCharToMultiByte 函數(shù)進(jìn)行 Unicode與ANSI編碼字符串的轉(zhuǎn)換;在Linux環(huán)境下,使用iconv函數(shù)進(jìn)行Unicode與ANSI編碼字符串的轉(zhuǎn)換。②使用用戶自定義的轉(zhuǎn)換表,手動實(shí)現(xiàn)字符編碼之間的轉(zhuǎn)換。直接存儲以Unicode編碼的字符串存在以下缺點(diǎn)(I)在非WindoWS、Linux或其它高級操作系統(tǒng)編程環(huán)境下的嵌入式設(shè)備中,第①種Unicode與ANSI編碼的轉(zhuǎn)換方法無法使用。(2)在對代碼空間要求較高的嵌入式設(shè)備環(huán)境中,第②種Unicode與ANSI編碼的轉(zhuǎn)換方法方法需占用數(shù)百K字節(jié)的內(nèi)存空間,這對于一些對空間要求較高的嵌入式系統(tǒng)來說是一筆巨大的開銷。

      發(fā)明內(nèi)容
      本發(fā)明的目的是克服已有Unicode編碼字符串的存儲及使用過程中存在的不足,提出一種嵌入式設(shè)備中Unicode編碼字符串的存儲方法。本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的。一種嵌入式設(shè)備中Unicode編碼字符串的存儲方法,其具體操作步驟為第①步依次將Unicode編碼字符串中的每個Unicode字符用16進(jìn)制數(shù)表示。一個Unicode字符包含2個字節(jié)。然后對用16進(jìn)制數(shù)表示的每個Unicode字符進(jìn)行第②步至第③步的操作。第②步對一個Unicode字符中每個字節(jié)的高4位和低4位分別轉(zhuǎn)換成相應(yīng)ASCII碼表示。第③步合并轉(zhuǎn)換的結(jié)果,即將一個Unicode字符轉(zhuǎn)換為4個ASCII編碼的字符,并對由4個ASCII編碼表示的轉(zhuǎn)換結(jié)果進(jìn)行存儲。經(jīng)過上述步驟的操作,即可將一個Unicode編碼字符串轉(zhuǎn)換為ASCII編碼形式并進(jìn)行存儲,此時嵌入式系統(tǒng)可直接使用此種編碼形式的字符串。有益效果本發(fā)明提出的方法與目前已有的技術(shù)比較具有以下優(yōu)點(diǎn)①本發(fā)明方法不需要特定的操作系統(tǒng)編程環(huán)境。②節(jié)約空間。本發(fā)明方法不需要占用空間巨大的轉(zhuǎn)換表,節(jié)約了程序的空間。③本發(fā)明提出的存儲方法,可以很方便的實(shí)現(xiàn)ASCII字符串到Unicode字符串的 逆轉(zhuǎn)換,得到原始Unicode字符串。
      具體實(shí)施例方式下面結(jié)合具體實(shí)施例對本發(fā)明內(nèi)容做進(jìn)一步說明。實(shí)施例I :對FAT32文件系統(tǒng)的一個以Unicode編碼的長文件名“一種嵌入式設(shè)備中Unicode編碼字符串的存儲方法.doc”進(jìn)行存儲,其具體操作步驟為第①步依次將該Unicode編碼字符串中的每個Unicode字符用16進(jìn)制數(shù)表示“00 4E CD 79 4C 5D 65 51 OF 5F BE 8B 07 59 2D 4E 55 00 6E 00 69 00 6300 6F 0064 00 65 00 16 7F 01 78 57 5B 26 7B 32 4E 84 76 58 5B A8 50 B9 65 D56C 2E 0064 00 6F 00 63 00”。然后對用16進(jìn)制數(shù)表示的每個Unicode字符進(jìn)行第②步至第③步的操作。第②步對一個Unicode字符中每個字節(jié)的高4位和低4位分別轉(zhuǎn)換成相應(yīng)ASCII碼表示。具體為如果待處理字節(jié)的4位二進(jìn)制碼位于O到9區(qū)間,使其加上0x30,否則加上0x37。這樣對于4位二進(jìn)制碼O 9、A F就映射到ASCII碼的0x30到0x39或者0x61到0x66之間。第③步合并轉(zhuǎn)換的結(jié)果,即將一個Unicode字符轉(zhuǎn)換為4個ASCII編碼的字符,并對由4個ASCII編碼表示的轉(zhuǎn)換結(jié)果進(jìn)行存儲。經(jīng)過上述步驟的操作,即可將一個Unicode編碼字符串轉(zhuǎn)換為ASCII編碼形式“004ECD794C5D65510F5FBE8B7592D4E55006E00690063006F0064006500167F0178575B267B324E8476585BA850B965D56C2E0064006F006300,>,并對其進(jìn)行存儲,此時嵌入式系統(tǒng)可直接使用此種編碼形式的字符串?;謴?fù)Unicode的具體操作步驟為第I 步 J^ASCII 碼字符串“004ECD794Cro65510F5FBE8B7592D4E55006E00690063006F0064006500167F0178575B267B324E8476585BA850B965D56C2E0064006F006300” 中的每個字符分配4位空間,此字符串共116個ASCII字符,即共需58個字節(jié)的空間,對應(yīng)29個Unicode 字符。第2步對每個ASCII碼字符進(jìn)行轉(zhuǎn)換,過程如下如果待處理ASCII字符位于字符O到字符9區(qū)間,使其減去0x30 ;否則減去0x37。這樣對于ASCII碼的0x30到0x39、0x61到0x66區(qū)間就映射到4位二進(jìn)制碼O到F。比如對于此字符串的前四個ASCII字符“004E”,16進(jìn)制表示為0x30,0x30,0x34,0x45,就轉(zhuǎn)換為16進(jìn)制0x004E,即Unicode中的漢字“一,,。第3步將轉(zhuǎn)換完成的字符串合并到一起進(jìn)行存儲。全部轉(zhuǎn)換完成后,ASCII編碼字符串 “004ECD794C5D65510F5FBE8B7592D4E55006E00690063006F0064006500167F0178575B267B324E8476585BA850B965D56C2E0064006F006300”存儲為原 Unicode 字符串“一種嵌入式設(shè)備中Unicode編碼字符串的存儲方法.doc”。實(shí)施例2 對NTFS文件系統(tǒng)的一個以Unicode編碼的文件名“Windows編程視頻教程I”進(jìn)行存儲,其具體操作步驟為第①步依次將該Unicode編碼字符串中的每個Unicode字符用16進(jìn)制數(shù)表示 “57 00 69 00 6E 00 64 00 6F 00 77 00 73 00 16 7F OB 7A C6 89 91 98 59 650B 7A31 00”。然后對用16進(jìn)制數(shù)表示的每個Unicode字符進(jìn)行第②步至第③步的操作。第②步對一個Unicode字符中每個字節(jié)的高4位和低4位分別轉(zhuǎn)換成相應(yīng)ASCII碼表示。具體為如果待處理字節(jié)的4位二進(jìn)制碼位于O到9區(qū)間,使其加上0x30,否則加上0x37。這樣對于4位二進(jìn)制碼O 9、A F就映射到ASCII碼的0x30到0x39或者0x61到0x66之間。第③步合并轉(zhuǎn)換的結(jié)果,即將一個Unicode字符轉(zhuǎn)換為4個ASCII編碼的字符,并對由4個ASCII編碼表示的轉(zhuǎn)換結(jié)果進(jìn)行存儲。經(jīng)過上述步驟的操作,即可將一個Unicode編碼字符串轉(zhuǎn)換為ASCII編碼形式“570069006E0064006F0077007300167F0B7AC689919859650B7A3100”,并對其進(jìn)行存儲,此
      時嵌入式系統(tǒng)可直接使用此種編碼形式的字符串。本發(fā)明不僅限于以上實(shí)施例,凡是利用本發(fā)明的設(shè)計思路,做一些簡單變化的設(shè)計,都應(yīng)計入本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種嵌入式設(shè)備中Unicode編碼字符串的存儲方法,其特征在于其具體操作步驟為第①步依次將Unicode編碼字符串中的每個Unicode字符用16進(jìn)制數(shù)表示;一個Unicode字符包含2個字節(jié);然后對用16進(jìn)制數(shù)表示的每個Unicode字符進(jìn)行第②步至第③步的操作; 第②步對一個Unicode字符中每個字節(jié)的高4位和低4位分別轉(zhuǎn)換成相應(yīng)ASCII碼表不; 第③步合并轉(zhuǎn)換的結(jié)果,即將一個Unicode字符轉(zhuǎn)換為4個ASCII編碼的字符,并對由4個ASCII編碼表示的轉(zhuǎn)換結(jié)果進(jìn)行存儲; 經(jīng)過上述步驟的操作,即可將一個Unicode編碼字符串轉(zhuǎn)換為ASCII編碼形式并進(jìn)行存儲,此時嵌入式系統(tǒng)可直接使用此種編碼形式的字符串。
      全文摘要
      本發(fā)明提出的一種嵌入式設(shè)備中Unicode編碼字符串的存儲方法,具體為①依次將Unicode編碼字符串中的每個Unicode字符用16進(jìn)制數(shù)表示;然后對用16進(jìn)制數(shù)表示的每個Unicode字符進(jìn)行第②步至第③步的操作。②對一個Unicode字符中每個字節(jié)的高4位和低4位分別轉(zhuǎn)換成相應(yīng)ASCII碼表示。③合并轉(zhuǎn)換的結(jié)果,即將一個Unicode字符轉(zhuǎn)換為4個ASCII編碼的字符,并對由4個ASCII編碼表示的轉(zhuǎn)換結(jié)果進(jìn)行存儲。本發(fā)明提出的方法具有以下優(yōu)點(diǎn)①不需要特定的操作系統(tǒng)編程環(huán)境。②節(jié)約空間。③可以很方便的實(shí)現(xiàn)ASCII字符串到Unicode字符串的逆轉(zhuǎn)換,得到原始Unicode字符串。
      文檔編號G06F17/22GK102760119SQ20121024029
      公開日2012年10月31日 申請日期2012年7月11日 優(yōu)先權(quán)日2012年7月11日
      發(fā)明者張全新, 張翔, 張雪蘭, 李元章, 王文明, 譚毓安, 馬忠梅 申請人:北京理工大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1