專利名稱:在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)字符處理技術(shù),特別是一種在中文操作系統(tǒng)環(huán)境下的俄文字符 編輯和顯示方法及裝置。
背景技術(shù):
隨著我國(guó)技術(shù)力量的增強(qiáng),現(xiàn)在越來(lái)越多的嵌入式產(chǎn)品銷(xiāo)往俄羅斯,這就使得這 些產(chǎn)品支持俄文顯示成為必需。由于國(guó)內(nèi)開(kāi)發(fā)人員在中文操作系統(tǒng)環(huán)境下對(duì)源碼中俄文字 符進(jìn)行編輯時(shí),通常采用我國(guó)制定的GB2312編碼表標(biāo)準(zhǔn),所以通過(guò)對(duì)GB2312編碼表標(biāo)準(zhǔn)中 對(duì)應(yīng)的俄文字符進(jìn)行編輯,來(lái)實(shí)現(xiàn)俄文顯示。然而當(dāng)把編譯好的源碼載入到目標(biāo)系統(tǒng)運(yùn)行 時(shí),俄文字符經(jīng)常無(wú)法顯示或顯示不正?!,F(xiàn)有的解決方法有幾種,方法一是在中文操作系統(tǒng)環(huán)境下編輯俄文字符,程序運(yùn) 行時(shí)利用GB2312編碼表中現(xiàn)有的俄文編碼在目標(biāo)系統(tǒng)中調(diào)用GB2312字體顯示俄文,由于 俄文字符在中文操作系統(tǒng)環(huán)境下進(jìn)行編輯,保存形式為GB2312編碼,所以運(yùn)行結(jié)果顯示為 雙字節(jié),既不符合俄語(yǔ)習(xí)慣,又影響界面美觀(顯示效果如圖3所示)。方法二是在俄文環(huán) 境(即俄文操作系統(tǒng))下編輯俄文字符,字符編碼與K0I8-R的編碼保持一致,在目標(biāo)系統(tǒng) 中使用K0I8-R字體來(lái)顯示俄文。因?yàn)榉椒ǘ仨毷窃诙砦木庉嫮h(huán)境下才能實(shí)現(xiàn),所以對(duì)我 國(guó)程序開(kāi)發(fā)人員造成極多不便,而且源碼中其他語(yǔ)言(如中文)的編碼在俄文操作系統(tǒng)環(huán) 境下顯示為亂碼,使得編輯和維護(hù)都相當(dāng)困難。方法三是使用UNICODE編碼,以解決各種字 符集的顯示的問(wèn)題。但是,由于很多國(guó)家和地區(qū)的習(xí)慣問(wèn)題,并不認(rèn)同UNICODE字符集,而 且UNICODE適合通用型操作系統(tǒng),對(duì)嵌入式系統(tǒng)來(lái)講,并不是好的解決辦法,很多嵌入式系 統(tǒng)的圖形庫(kù)軟件并不支持UNICODE。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)中存在的缺陷或不足,提供一種在中文操作系統(tǒng)環(huán)境下的俄 文字符編輯和顯示方法及裝置。所述方法及裝置不僅解決了在中文操作系統(tǒng)環(huán)境下對(duì)源碼 中俄文字符進(jìn)行編輯,運(yùn)行結(jié)果顯示不正常的問(wèn)題,而且也使得對(duì)俄文的編輯和維護(hù)更加 方便簡(jiǎn)單。本發(fā)明的技術(shù)方案如下在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法,其特征在于,包括以下步 驟1)在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼,并存儲(chǔ);2)利用預(yù)先建立的GB2312編碼表和K0I8-R編碼表中俄文字符的對(duì)應(yīng)關(guān)系,對(duì)俄 文字符串編碼進(jìn)行映射處理,獲得符合K0I8-R編碼表標(biāo)準(zhǔn)的俄文字符串編碼;3)根據(jù)映射后的俄文字符串編碼,利用目標(biāo)系統(tǒng)圖形庫(kù)方法,正常顯示俄文字符。所述步驟1)中,在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼是指,在程 序源碼文件中直接編寫(xiě)俄文字符串,或者從EXCEL表格或其他文檔中直接將俄文字符串拷貝粘貼到源碼文件中;所述存儲(chǔ)是指,使用無(wú)符號(hào)字節(jié)方式存儲(chǔ)。所述步驟2)中包括以下內(nèi)容A)首先在GB2312編碼表標(biāo)準(zhǔn)中去掉俄文字符的第一個(gè)字節(jié)0xa7 ;B)利用特殊映射關(guān)系,即GB2312編碼表和K0I8-R編碼表標(biāo)準(zhǔn)中俄文字符代碼的 一一對(duì)應(yīng)關(guān)系,將GB2312中的俄文編碼映射到K0I8-R編碼表中;C)所得到的俄文字符的映射代碼如下所示static unsigned char map []={0x00,Oxel,0xe2,0xf7,0xe7,0xe4,0xe5,0x00,0xf6,0xfa,0xe9,0xea,Oxeb,Oxec,Oxed,Oxee,Oxef, 0xf0,0xf2,0xf3,0xf4,0xf5,0xe6,0xe8,0xe3,0xfe,0xfb,0xfd,Oxff,0xf9,0xf8,Oxfc,OxeO,Oxfl,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,Oxcl,0xc2,0xd7,0xc7,0xc4,0xc5,0x00,0xd6,Oxda,0xc9,Oxca,Oxcb,Oxcc,Oxcd, Oxce,Oxcf,OxdO,0xd2,0xd3,0xd4,0xd5,0xc6,0xc8,0xc3,Oxde,Oxdb,Oxdd,Oxdf,0xd9,0xd8, Oxdc,0xc0,0xdl}。所述步驟3)中,利用目標(biāo)系統(tǒng)圖形庫(kù)方法是指,使用IS08859-1標(biāo)準(zhǔn),將通過(guò)映射 處理后的俄文字符串編碼,利用目標(biāo)系統(tǒng)的字符顯示機(jī)制,調(diào)用K0I8-R字體,以正常顯示 俄文字符。所述目標(biāo)系統(tǒng)是具有顯示屏的系統(tǒng)。在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示裝置,其特征在于,包括編輯模塊 和顯示模塊,所述編輯模塊是在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼,并存 儲(chǔ);所述顯示模塊是通過(guò)GB2312編碼表中俄文字符和K0I8-R編碼表中俄文字符的對(duì)應(yīng)關(guān) 系映射表,以獲得符合K0I8-R編碼表標(biāo)準(zhǔn)的俄文字符串編碼,并根據(jù)映射后俄文字符串編 碼,利用目標(biāo)系統(tǒng)圖形庫(kù)方法,正常顯示俄文字符;所述目標(biāo)系統(tǒng)是具有顯示屏的系統(tǒng)。本發(fā)明的技術(shù)效果如下本發(fā)明解決了開(kāi)發(fā)人員過(guò)于依賴俄文環(huán)境的問(wèn)題,并且可以獨(dú)立在中文操作系統(tǒng) 環(huán)境下對(duì)俄文進(jìn)行編輯和維護(hù),俄文字符串和其它字符串(如中文)均能正常顯示,沒(méi)有亂 碼,編輯和維護(hù)工作簡(jiǎn)單;而且在目標(biāo)系統(tǒng)中能直接使用K0I8-R字體顯示俄文,既符合俄 語(yǔ)習(xí)慣,界面又美觀。
圖1是本發(fā)明在中文編輯環(huán)境下實(shí)現(xiàn)俄文字符串顯示和編輯的流程圖。圖2是本發(fā)明中俄文字符串的映射處理流程圖。圖3是使用現(xiàn)有技術(shù)中方法一顯示俄文字符串的效果圖。
5
圖4是使用本發(fā)明顯示俄文字符串的效果圖。
具體實(shí)施例方式本發(fā)明的發(fā)明構(gòu)思如下在中文操作系統(tǒng)環(huán)境下俄文字符顯示和編輯的方法,包 括將俄文字符串編輯進(jìn)程序源碼中,使用無(wú)符號(hào)字符字節(jié)方式存儲(chǔ),然后根據(jù)GB2312與 K0I8-R標(biāo)準(zhǔn)中的俄文字符的對(duì)應(yīng)關(guān)系,獲得符合K0I8-R編碼表標(biāo)準(zhǔn)的俄文字符串編碼,最 后利用目標(biāo)系統(tǒng)圖形庫(kù)方法,使用IS08859-1標(biāo)準(zhǔn),調(diào)用K0I8-R字體來(lái)顯示俄文字符。本 發(fā)明在中文操作系統(tǒng)環(huán)境下對(duì)俄文字符串進(jìn)行編輯,不僅解決了中文操作系統(tǒng)環(huán)境下編輯 俄文,運(yùn)行結(jié)果顯示不正常的問(wèn)題,而且也使程序開(kāi)發(fā)人員對(duì)俄文的編輯和維護(hù)更加簡(jiǎn)單 方便。本發(fā)明涉及GB2312標(biāo)準(zhǔn)編碼,在GB2312標(biāo)準(zhǔn)中俄文編碼由兩個(gè)字節(jié)組成,一個(gè)字 節(jié)編碼固定為0xa7,另一個(gè)字節(jié)編碼如下表2所示。在中文操作系統(tǒng)環(huán)境下,對(duì)俄文字符串進(jìn)行編輯,根據(jù)GB2312與K0I8-R標(biāo)準(zhǔn)中的 俄文字符的對(duì)應(yīng)關(guān)系表,在目標(biāo)系統(tǒng)中使用K0I8-R字體來(lái)顯示俄文字符。下表分別為K0I8-R標(biāo)準(zhǔn)中的俄文字符編碼表和GB2312標(biāo)準(zhǔn)中的俄文字符第二個(gè) 字節(jié)的編碼表。表1 :K0I8_R標(biāo)準(zhǔn)中的俄文字符對(duì)應(yīng)的編碼表 表2 :GB2312標(biāo)準(zhǔn)中的俄文字符第二個(gè)字節(jié)的編碼表 本方法在對(duì)俄文字符串進(jìn)行顯示時(shí),對(duì)GB2312標(biāo)準(zhǔn)中的俄文字符編碼進(jìn)行解析, 首先去掉俄文字符編碼的第一個(gè)字節(jié)0xa7,利用特殊映射關(guān)系,即一一對(duì)應(yīng),將GB2312中 的俄文編碼(表2所示)映射到K0I8-R編碼(表1所示),從而實(shí)現(xiàn)在中文操作系統(tǒng)環(huán)境 下對(duì)俄文源碼編輯,并且調(diào)用K0I8-R字體顯示。其中映射表如下所示static unsigned char map[]={0x00,Oxel,0xe2,0xf7,0xe7,0xe4,0xe5,0x00,0xf6,Oxfa,0xe9,Oxea,Oxeb,Oxec,Oxed, Oxee,Oxef, 0xf0,0xf2,0xf3,0xf4,0xf5,0xe6,0xe8,0xe3,0xfe,0xfb,0xfd,Oxff,0xf9,0xf8, Oxfc,OxeO,Oxfl,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,Oxcl,0xc2,0xd7,0xc7,0xc4,0xc5,0x00,0xd6,Oxda,0xc9,Oxca,Oxcb,Oxcc, Oxcd, Oxce,Oxcf,OxdO,0xd2,0xd3,0xd4,0xd5,0xc6,0xc8,0xc3,Oxde,Oxdb,Oxdd,Oxdf,0xd9,0xd8,Oxdc,0xc0,0xdl}。本發(fā)明解決了開(kāi)發(fā)人員過(guò)于依賴俄文編碼環(huán)境的問(wèn)題,并且可以獨(dú)立在中文環(huán)境 下對(duì)俄文進(jìn)行編輯和維護(hù),俄文字符串和其它字符串(如中文)均能正常顯示,沒(méi)有亂碼, 編輯和維護(hù)工作簡(jiǎn)單;而且在目標(biāo)系統(tǒng)中能直接使用K0I8-R字體顯示俄文,既符合俄語(yǔ)習(xí) 慣,界面又美觀。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合具體實(shí)施步驟和附 圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。圖1示出了本發(fā)明在中文編輯環(huán)境下實(shí)現(xiàn)俄文顯示和編輯的流程圖。如圖1所示, 在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示,包括以下主要流程在中文環(huán)境下,獲取俄 文字符串編碼并存儲(chǔ);利用GB2312與K0I8-R標(biāo)準(zhǔn)對(duì)應(yīng)關(guān)系,對(duì)俄文字符串進(jìn)行處理;根據(jù) 目標(biāo)系統(tǒng)圖形庫(kù)方法顯示俄文字符。圖2是本發(fā)明中俄文字符串的映射處理流程圖。下面結(jié)合圖1-圖2,說(shuō)明在中文 操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示的步驟流程。步驟(1)在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼中,可以從Excel表格或其 它文檔中直接拷貝粘貼到源碼文件中,使用無(wú)符號(hào)字節(jié)方式存儲(chǔ)。
步驟(2)俄文字符串處理 使用函數(shù) unsigned char氺gb2312_ _to_koi8(unsigned char氺dst, unsigned
char^src)實(shí)現(xiàn),其中src為待處理的俄文字符串,dst為處理后的K0I8-R字符串
a)申明一個(gè)臨時(shí)字符緩沖區(qū)buf,申明兩個(gè)臨時(shí)指針指向src和buf b)判斷pi當(dāng)前位置字節(jié)是否為src字符串末尾,若不是,則執(zhí)行下一步,否則,跳 出循環(huán),執(zhí)行步驟e;c)判斷pi當(dāng)前位置字節(jié)值是否為0xa7,若值不等于0xa7,則將其賦值給p0指向 位置,并將P0向前移動(dòng)一個(gè)位置;d)將pi向前移動(dòng)一個(gè)位置,返回步驟b ;e)將p0當(dāng)前位置賦值末尾標(biāo)志,p0位置重新指向buf開(kāi)始位置,pi指向dst開(kāi) 始位置*p0 = ‘\0,;p0 = buf ;pi = dst ;f)判斷p0當(dāng)前位置字節(jié)是否為buf字符串末尾,若不是,則執(zhí)行下一步,否則,跳 出循環(huán),將Pi當(dāng)前位置賦值末尾標(biāo)志,返回dst ;g)將p0當(dāng)前位置值減去OxaO后賦值給map數(shù)組當(dāng)前位置,再將map數(shù)組當(dāng)前位 置值賦值給pl指向位置。氺pl = map[氺p0_0xa0];h)將p0、pl向前移動(dòng)一個(gè)位置,返回步驟f ;步驟(3)根據(jù)目標(biāo)系統(tǒng)圖形庫(kù)方法,使用IS08859-1標(biāo)準(zhǔn),將gb2312_to_koi8函數(shù)處理后 的字符串調(diào)用K0I8-R字體,就可顯示標(biāo)準(zhǔn)俄文字符了,顯示結(jié)果如圖4所示。顯然,圖4是 正常顯示,圖3是不正常顯示。應(yīng)當(dāng)指出,以上所述實(shí)施方式可以使本領(lǐng)域的技術(shù)人員更全面地理解本發(fā)明,但 不以任何方式限制本發(fā)明。unsigned char buf []unsigned char氺pO = buf ;unsigned char氺pl = src ;
if(*pl' = 0xa7) {
氺pO =氺pl ; p0++ ;
權(quán)利要求
在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法,其特征在于,包括以下步驟1)在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼,并存儲(chǔ);2)利用預(yù)先建立的GB2312編碼表和KOI8-R編碼表中俄文字符的對(duì)應(yīng)關(guān)系,對(duì)俄文字符串編碼進(jìn)行映射處理,獲得符合KOI8-R編碼表標(biāo)準(zhǔn)的俄文字符串編碼;3)根據(jù)映射后的俄文字符串編碼,利用目標(biāo)系統(tǒng)圖形庫(kù)方法,正常顯示俄文字符。
2.根據(jù)權(quán)利要求1所述的在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法,其特征 在于,所述步驟1)中,在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼是指,在程序 源碼文件中直接編寫(xiě)俄文字符串,或者從EXCEL表格或其他文檔中直接將俄文字符串拷貝 粘貼到源碼文件中;所述存儲(chǔ)是指,使用無(wú)符號(hào)字節(jié)方式存儲(chǔ)。
3.根據(jù)權(quán)利要求1所述的在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法,其特征 在于,所述步驟2)中包括以下內(nèi)容A)首先在GB2312編碼表標(biāo)準(zhǔn)中去掉俄文字符的第一個(gè)字節(jié)0xa7;B)利用特殊映射關(guān)系,即GB2312編碼表和K0I8-R編碼表標(biāo)準(zhǔn)中俄文字符編碼的一一 對(duì)應(yīng)關(guān)系,將GB2312中的俄文編碼映射到K0I8-R編碼表中;C)所得到的俄文字符的映射代碼如下所示static unsigned char map[]={0x00,Oxel,0xe2,0xf7,0xe7,0xe4,0xe5,0x00, 0xf6,Oxfa,0xe9,Oxea,Oxeb,Oxec,Oxed,Oxee, Oxef,0xf0,0xf2,0xf3,0xf4,0xf5,0xe6,0xe8, 0xe3,Oxfe,Oxfb,Oxfd,Oxff,Oxf9,Oxf8, Oxfc, OxeO,Oxfl,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,Oxcl,0xc2,0xd7,0xc7,0xc4,0xc5,0x00, 0xd6,Oxda,0xc9,Oxca,Oxcb,Oxcc, Oxcd, Oxce, Oxcf,OxdO,0xd2,0xd3,0xd4,0xd5,0xc6,0xc8, 0xc3,Oxde,Oxdb,Oxdd,Oxdf,0xd9,0xd8,Oxdc, 0xc0,0xdl}o
4.根據(jù)權(quán)利要求1所述的在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法,其特征 在于,所述步驟3)中,利用目標(biāo)系統(tǒng)圖形庫(kù)方法是指,使用IS08859-1標(biāo)準(zhǔn),將通過(guò)映射處 理后的俄文字符串,利用目標(biāo)系統(tǒng)的字符顯示機(jī)制,調(diào)用K0I8-R字體,以正常顯示俄文字 符。
5.根據(jù)權(quán)利要求1所述的在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法,其特征 在于,所述目標(biāo)系統(tǒng)是具有顯示屏的系統(tǒng)。
6.在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示裝置,其特征在于,包括編輯模塊和 顯示模塊,所述編輯模塊是在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼,并存儲(chǔ); 所述顯示模塊是通過(guò)GB2312編碼表中俄文字符和K0I8-R編碼表中俄文字符的對(duì)應(yīng)關(guān)系映 射表,以獲得符合K0I8-R編碼表標(biāo)準(zhǔn)的俄文字符串編碼,并根據(jù)映射后俄文字符串編碼,利用目標(biāo)系統(tǒng)圖形庫(kù)方法,正常顯示俄文字符;所 述目標(biāo)系統(tǒng)是具有顯示屏的系統(tǒng)。
全文摘要
在中文操作系統(tǒng)環(huán)境下的俄文字符編輯和顯示方法及裝置,所述方法及裝置不僅解決了在中文操作系統(tǒng)環(huán)境下對(duì)俄文字符進(jìn)行編輯,運(yùn)行結(jié)果顯示不正常的問(wèn)題,而且也使得對(duì)俄文的編輯和維護(hù)更加方便簡(jiǎn)單,其特征在于,包括以下步驟1)在中文操作系統(tǒng)環(huán)境下將俄文字符串編輯進(jìn)程序源碼,并存儲(chǔ);2)利用預(yù)先建立的GB2312編碼表和KOI8-R編碼表中俄文字符標(biāo)準(zhǔn)的對(duì)應(yīng)關(guān)系,對(duì)俄文字符串編碼進(jìn)行處理,獲得符合KOI8-R編碼表標(biāo)準(zhǔn)的俄文字符串編碼;3)根據(jù)映射后俄文字符串編碼,利用目標(biāo)系統(tǒng)圖形庫(kù)方法,正常顯示俄文字符。
文檔編號(hào)G06F17/21GK101853245SQ20101018711
公開(kāi)日2010年10月6日 申請(qǐng)日期2010年5月31日 優(yōu)先權(quán)日2010年5月31日
發(fā)明者周玉祿, 趙均輝, 金文波 申請(qǐng)人:深圳市開(kāi)立科技有限公司