中文字符的編碼方式的識(shí)別方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供一種中文字符序列的編碼方式的識(shí)別方法和裝置。該方法包括:從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征;根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。由于無(wú)需事先建立復(fù)雜的字符概率分布模型,因此簡(jiǎn)化了識(shí)別編碼方式的識(shí)別流程;對(duì)于海量網(wǎng)絡(luò)數(shù)據(jù)中的待識(shí)別中文字符序列,采用長(zhǎng)度特征縮小了檢測(cè)范圍,避免了直接對(duì)待識(shí)別中文字符序列逐一檢測(cè)異常編碼點(diǎn)導(dǎo)致的對(duì)內(nèi)存的占用,在縮小檢測(cè)范圍后,進(jìn)一步結(jié)合異常編碼點(diǎn)特征,提高了編碼方式的識(shí)別效率和準(zhǔn)確率。
【專(zhuān)利說(shuō)明】中文字符的編碼方式的識(shí)別方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及計(jì)算機(jī)數(shù)據(jù)通信【技術(shù)領(lǐng)域】,尤其涉及一種中文字符的編碼方式的識(shí)別方法和裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)通信技術(shù)的不斷發(fā)展,人們創(chuàng)造了多種編碼方式用于在網(wǎng)絡(luò)中傳輸數(shù)據(jù),對(duì)于中文字符來(lái)說(shuō),常用的編碼方式有GBK,GB2312和UTF-8。在獲取到網(wǎng)絡(luò)中傳輸?shù)慕?jīng)編碼后的中文字符序列之后,需要對(duì)獲取到的中文字符序列進(jìn)行解碼,才能正確還原出中文字符序列對(duì)應(yīng)的原始數(shù)據(jù),因此,識(shí)別中文字符序列的編碼方式的技術(shù)應(yīng)運(yùn)而生。
[0003]現(xiàn)有的中文字符序列的編碼方式的識(shí)別技術(shù)主要包括:編碼模式法和字符分布法。
[0004]編碼模式法主要是基于編碼范圍判斷編碼方式,對(duì)于海量的字符序列,只能基于編碼范圍逐個(gè)檢測(cè),不僅檢測(cè)效率低,而且當(dāng)存在大量的編碼重合點(diǎn)時(shí),會(huì)導(dǎo)致無(wú)法決策是哪種編碼方式。
[0005]字符分布法是以字符分布概率為模型,在對(duì)編碼方式進(jìn)行識(shí)別前需要針對(duì)特定的字符集建立字符概率分布模型,實(shí)現(xiàn)起來(lái)較復(fù)雜,且識(shí)別時(shí)會(huì)占用大量?jī)?nèi)存,導(dǎo)致識(shí)別效率低;同時(shí)面對(duì)錯(cuò)綜復(fù)雜的網(wǎng)絡(luò)環(huán)境,網(wǎng)絡(luò)數(shù)據(jù)流中往往是中、英文和其余特殊符號(hào)夾雜在一起,當(dāng)英文字符等非中文字符占多數(shù)的情況下,往往會(huì)干擾中文字符編碼方式的識(shí)別,尤其是影響基于字符概率分布模型的字符編碼識(shí)別方案的識(shí)別準(zhǔn)確性。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施例提供一種中文字符的編碼方式的識(shí)別方法和裝置,以簡(jiǎn)化識(shí)別流程,降低對(duì)內(nèi)存的占用,并提高對(duì)于海量網(wǎng)絡(luò)數(shù)據(jù)中的中文字符序列的編碼方式識(shí)別效率和準(zhǔn)確率。
[0007]第一方面,本發(fā)明實(shí)施例提供了一種中文字符序列的編碼方式的識(shí)別方法,包括:
[0008]從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征;
[0009]根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。
[0010]第二方面,本發(fā)明實(shí)施例還提供了一種中文字符序列的編碼方式的識(shí)別裝置,包括:
[0011]字符序列特征獲取模塊,用于從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征;
[0012]編碼方式確定模塊,用于根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。
[0013]本發(fā)明實(shí)施例提供的中文字符序列的編碼方式的識(shí)別方法和裝置,通過(guò)從待識(shí)別中文字符序列中獲取字符序列的長(zhǎng)度特征,或者獲取字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征,并基于獲取到的字符序列特征,能夠確定待識(shí)別中文字符序列的編碼方式,由于無(wú)需事先建立復(fù)雜的字符概率分布模型,因此簡(jiǎn)化了識(shí)別編碼方式的識(shí)別流程;對(duì)于海量網(wǎng)絡(luò)數(shù)據(jù)中的待識(shí)別中文字符序列,采用長(zhǎng)度特征縮小了檢測(cè)范圍,避免了直接對(duì)待識(shí)別中文字符序列逐一檢測(cè)異常編碼點(diǎn)導(dǎo)致的對(duì)內(nèi)存的占用,在縮小檢測(cè)范圍后,進(jìn)一步結(jié)合異常編碼點(diǎn)特征,提高了編碼方式的識(shí)別效率和準(zhǔn)確率。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0014]為了更清楚地說(shuō)明本發(fā)明,下面將對(duì)本發(fā)明中所需要使用的附圖做一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0015]圖1為本發(fā)明實(shí)施例一提供的一種中文字符的編碼方式的識(shí)別方法的流程圖;
[0016]圖2為本發(fā)明實(shí)施例二提供的一種中文字符的編碼方式的識(shí)別方法的流程圖;
[0017]圖3為本發(fā)明實(shí)施例三提供的一種中文字符的編碼方式的識(shí)別方法的流程圖;
[0018]圖4為本發(fā)明實(shí)施例四提供的一種中文字符的編碼方式的識(shí)別方法的流程圖;
[0019]圖5為本發(fā)明實(shí)施例五提供的一種中文字符序列的編碼方式的識(shí)別裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例中的技術(shù)方案作進(jìn)一步詳細(xì)描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。可以理解的是,此處所描述的具體實(shí)施例僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部?jī)?nèi)容。
[0021]實(shí)施例一
[0022]請(qǐng)參閱圖1,為本發(fā)明實(shí)施例一提供的一種中文字符的編碼方式的識(shí)別方法的流程圖。本發(fā)明實(shí)施例的方法適用于中文字符的編碼方式的識(shí)別系統(tǒng),該系統(tǒng)包括:分流設(shè)備和數(shù)據(jù)還原設(shè)備,其中,分流設(shè)備用于獲取網(wǎng)絡(luò)中的待識(shí)別中文字符序列;數(shù)據(jù)還原設(shè)備用于從分流設(shè)備獲取待識(shí)別中文字符序列,并識(shí)別所述待識(shí)別中文序列的編碼方式。本發(fā)明實(shí)施例的方法可以由配置以硬件和/或軟件實(shí)現(xiàn)的中文字符的編碼方式的識(shí)別裝置來(lái)執(zhí)行,該實(shí)現(xiàn)裝置典型的是配置于數(shù)據(jù)還原設(shè)備中。
[0023]該方法包括:
[0024]步驟110、從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征;
[0025]本步驟具體是從待識(shí)別中文字符序列中獲取相應(yīng)的字符序列特征,所述字符序列特征可以只是待識(shí)別中文字符序列的長(zhǎng)度特征,也可以是所述長(zhǎng)度特征與所述待識(shí)別中文字符序列的異常編碼點(diǎn)特征。
[0026]其中,字符序列的長(zhǎng)度特征是指所述待識(shí)別中文字符序列的長(zhǎng)度。
[0027]所述字符序列的異常編碼點(diǎn)與中文字符對(duì)應(yīng)的編碼方式的編碼范圍有關(guān),某種編碼方式的異常編碼點(diǎn)位于該編碼方式的編碼范圍之外,不同的編碼方式的編碼范圍不同。對(duì)于中文字符來(lái)說(shuō),常用的編碼方式有GBK編碼,GB2312編碼和UTF-8編碼。
[0028]以十六進(jìn)制的編碼范圍為例,對(duì)GBK編碼,GB2312編碼和UTF-8編碼各自的異常編碼點(diǎn)進(jìn)行說(shuō)明。
[0029]其中,GB2312編碼采用雙字節(jié)編碼,也即一個(gè)中文字符占兩個(gè)字節(jié),高位字節(jié)的編碼范圍為OxBO?0xF7,低位字節(jié)的編碼范圍為OxAl?OxFE。不在該高位字節(jié)的編碼范圍和/或該低位字節(jié)的編碼范圍內(nèi)的編碼為GB2312異常編碼點(diǎn)。
[0030]GBK編碼采用雙字節(jié)編碼,兼容GB2312編碼,其中GBK編碼的高位字節(jié)的編碼范圍為0x81?OxFE,低位字節(jié)的編碼范圍為0x40?OxFE,不在該高位字節(jié)的編碼范圍和/或該低位字節(jié)的編碼范圍內(nèi)的編碼為GBK異常編碼點(diǎn)。
[0031]UTF-8編碼采用三字節(jié)編碼,也即采用3個(gè)字節(jié)編碼一個(gè)中文字符,高位字節(jié)的編碼范圍為OxEO?OxEF,中位字節(jié)的編碼范圍為0x80?OxBF,低位字節(jié)的編碼范圍為0x80?OxBF,不在該高位字節(jié)的編碼范圍、中位字節(jié)的編碼范圍和/或該低位字節(jié)的編碼范圍內(nèi)的編碼為UTF-8異常編碼點(diǎn)。
[0032]步驟120、根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。
[0033]本步驟中,既可以根據(jù)字符序列的長(zhǎng)度特征確定所述待識(shí)別中文字符序列的編碼方式,也可以根據(jù)字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征,確定所述待識(shí)別中文字符序列的編碼方式。
[0034]需要說(shuō)明的是,根據(jù)字符序列的長(zhǎng)度特征,主要是指待識(shí)別中文字符序列的長(zhǎng)度能否被2整除,以此初步識(shí)別所述待識(shí)別中文字符序列的編碼方式是否為UTF-8編碼;如果長(zhǎng)度能被2整除,需要進(jìn)一步識(shí)別編碼方式,則需要根據(jù)字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征,確定所述待識(shí)別中文字符序列的編碼方式。
[0035]本實(shí)施例的技術(shù)方案,通過(guò)從待識(shí)別中文字符序列中獲取字符序列的長(zhǎng)度特征,或者獲取字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征,并基于獲取到的字符序列特征,能夠確定待識(shí)別中文字符序列的編碼方式,由于無(wú)需事先建立復(fù)雜的字符概率分布模型,因此簡(jiǎn)化了識(shí)別編碼方式的識(shí)別流程;對(duì)于海量網(wǎng)絡(luò)數(shù)據(jù)中的待識(shí)別中文字符序列,采用長(zhǎng)度特征縮小了檢測(cè)范圍,避免了直接對(duì)待識(shí)別中文字符序列逐一檢測(cè)異常編碼點(diǎn)導(dǎo)致的對(duì)內(nèi)存的占用,在縮小檢測(cè)范圍后,進(jìn)一步結(jié)合異常編碼點(diǎn)特征,提高了編碼方式的識(shí)別效率和準(zhǔn)確率。
[0036]在本實(shí)施例的基礎(chǔ)上,在步驟120之后,還可以包括:
[0037]步驟130、根據(jù)確定的所述編碼方式對(duì)應(yīng)的解碼方式對(duì)所述待識(shí)別中文字符序列進(jìn)行解碼。
[0038]在確定所述待識(shí)別中文字符序列的編碼方式,采用確定的編碼方式對(duì)所述待識(shí)別中文字符序列進(jìn)行解碼,能夠還原所述待識(shí)別中文字符序列。
[0039]待識(shí)別中文字符序列可以來(lái)自于用戶(hù)的微博內(nèi)容或在論壇等的發(fā)帖內(nèi)容,數(shù)據(jù)還原設(shè)備確定待識(shí)別中文字符序列的編碼方式之后,進(jìn)一步解碼,可以還原用戶(hù)發(fā)布的原始信息,有利于提取指定數(shù)據(jù)段的短文本內(nèi)容,以分析用戶(hù)行為。
[0040]實(shí)施例二
[0041]請(qǐng)參閱圖2,為本發(fā)明實(shí)施例二提供的一種中文字符的編碼方式的識(shí)別方法的流程圖。本實(shí)施例在上述實(shí)施例的基礎(chǔ)上,提供了根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式的優(yōu)選方案。
[0042]該優(yōu)選方法包括:
[0043]步驟210、如果所述待識(shí)別中文字符序列的長(zhǎng)度不能被2整除,則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼;
[0044]本步驟中,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度不能被2整除,則對(duì)應(yīng)的編碼方式一定不是GB2312編碼和GBK編碼,因此可以確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼。
[0045]需要說(shuō)明的是,如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,則需要進(jìn)一步根據(jù)字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征,確定所述待識(shí)別中文字符序列的編碼方式。
[0046]步驟220、如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼;
[0047]本步驟具體是根據(jù)所述字符序列的長(zhǎng)度特征和所述字符序列的異常編碼點(diǎn)特征對(duì)所述待識(shí)別中文字符序列的編碼方式進(jìn)行識(shí)別。
[0048]具體地,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)為識(shí)別單位,對(duì)于各識(shí)別單位,進(jìn)一步判斷是否存在GBK異常編碼點(diǎn),如果檢測(cè)到有一個(gè)識(shí)別單位中存在GBK異常編碼點(diǎn),則對(duì)應(yīng)的編碼方式不是GBK編碼,又由于GBK編碼的編碼范圍兼容GB2312編碼的編碼范圍,因此可以確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼。
[0049]步驟230、如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼;
[0050]本步驟具體是根據(jù)所述字符序列的長(zhǎng)度特征和所述字符序列的異常編碼點(diǎn)特征對(duì)所述待識(shí)別中文字符序列的編碼方式進(jìn)行識(shí)別。
[0051]具體地,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)為識(shí)別單位,如果所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則可以確定待識(shí)別中文字符序列的編碼范圍雖然位于GB2312編碼的編碼范圍之外,但位于GBK編碼的編碼范圍內(nèi),因此可以確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼。
[0052]步驟240、如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼;
[0053]本步驟具體是根據(jù)所述字符序列的長(zhǎng)度特征和所述字符序列的異常編碼點(diǎn)特征對(duì)所述待識(shí)別中文字符序列的編碼方式進(jìn)行識(shí)別。
[0054]具體地,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)為識(shí)別單位,如果所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則可以確定待識(shí)別中文字符序列的編碼范圍位于GB2312編碼的編碼范圍內(nèi),又由于GBK編碼的編碼范圍兼容GB2312編碼的編碼范圍,因此可以確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
[0055]步驟250、如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼;
[0056]本步驟具體是根據(jù)所述字符序列的長(zhǎng)度特征和所述字符序列的異常編碼點(diǎn)特征對(duì)所述待識(shí)別中文字符序列的編碼方式進(jìn)行識(shí)別。
[0057]具體地,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼或GBK編碼,通過(guò)以待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)為識(shí)別單位,如果所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則可以確定待識(shí)別中文字符序列的編碼范圍雖然位于GB2312編碼的編碼范圍之外,但位于GBK編碼的編碼范圍內(nèi),因此可以確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼。
[0058]步驟260、如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼;
[0059]本步驟具體是根據(jù)所述字符序列的長(zhǎng)度特征和所述字符序列的異常編碼點(diǎn)特征對(duì)所述待識(shí)別中文字符序列的編碼方式進(jìn)行識(shí)別。
[0060]具體地,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼或GBK編碼,通過(guò)以待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)為識(shí)別單位,如果所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則可以確定待識(shí)別中文字符序列的編碼范圍位于GB2312編碼的編碼范圍內(nèi),又由于GBK編碼的編碼范圍兼容GB2312編碼的編碼范圍,因此可以確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
[0061]步驟270、如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)不存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼;
[0062]本步驟具體是根據(jù)所述字符序列的長(zhǎng)度特征和所述字符序列的異常編碼點(diǎn)特征對(duì)所述待識(shí)別中文字符序列的編碼方式進(jìn)行識(shí)別。
[0063]具體地,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每三個(gè)字節(jié)為識(shí)別單位,對(duì)于各識(shí)別單位,進(jìn)一步判斷是否存在UTF-8異常編碼點(diǎn),若否,則可以確定待識(shí)別中文字符序列的編碼范圍位于UTF-8編碼的編碼范圍之內(nèi),因此確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼。
[0064]步驟280、如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
[0065]本步驟具體是根據(jù)所述字符序列的長(zhǎng)度特征和所述字符序列的異常編碼點(diǎn)特征對(duì)所述待識(shí)別中文字符序列的編碼方式進(jìn)行識(shí)別。
[0066]具體地,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每三個(gè)字節(jié)為識(shí)別單位,對(duì)于各識(shí)別單位,進(jìn)一步判斷是否存在UTF-8異常編碼點(diǎn),若是,則可以確定待識(shí)別中文字符序列的編碼范圍位于UTF-8編碼的編碼范圍之外,因此確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
[0067]本實(shí)施例的技術(shù)方案,在從待識(shí)別中文字符序列中獲取字符序列的長(zhǎng)度特征,或者獲取字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征之后,通過(guò)獲取到的長(zhǎng)度特征,縮小了檢測(cè)范圍,避免了直接對(duì)待識(shí)別中文字符序列逐一檢測(cè)異常編碼點(diǎn)導(dǎo)致的對(duì)內(nèi)存的占用,在縮小檢測(cè)范圍后,進(jìn)一步結(jié)合異常編碼點(diǎn)特征,提高了編碼方式的識(shí)別效率和準(zhǔn)確率。
[0068]在上述實(shí)施例中,步驟210-步驟280是相互獨(dú)立的,都是根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式的優(yōu)選實(shí)施方式。即可以執(zhí)行步驟210-步驟280中的至少一項(xiàng),且執(zhí)行順序不限。
[0069]實(shí)施例三
[0070]請(qǐng)參閱圖3,為本發(fā)明實(shí)施例三提供的一種中文字符的編碼方式的識(shí)別方法的流程圖。本實(shí)施例在上述實(shí)施例的基礎(chǔ)上,提供了根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式的具體實(shí)現(xiàn)方案。
[0071]步驟310、判斷待識(shí)別中文字符序列的長(zhǎng)度是否能被2整除,若否,則執(zhí)行步驟320 ;若是,則執(zhí)行步驟330 ;
[0072]步驟320、確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼,流程結(jié)束。
[0073]本步驟中,由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度不能被2整除,則對(duì)應(yīng)的編碼方式一定不是GB2312編碼和GBK編碼,因此可以確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼。
[0074]步驟330、判斷所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)是否存在GBK異常編碼點(diǎn),若是,則執(zhí)行步驟320 ;若否,則執(zhí)行步驟340 ;
[0075]由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)為識(shí)別單位,對(duì)于各識(shí)別單位,進(jìn)一步判斷是否存在GBK異常編碼點(diǎn),如果檢測(cè)到有一個(gè)識(shí)別單位中存在GBK異常編碼點(diǎn),則對(duì)應(yīng)的編碼方式不是GBK編碼,又由于GBK編碼的編碼范圍兼容GB2312編碼的編碼范圍,因此可以確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼。
[0076]步驟340、判斷待識(shí)別中文字符序列的長(zhǎng)度是否能被3整除,若否,則執(zhí)行步驟350 ;若是,則執(zhí)行步驟360 ;
[0077]由于GB2312編碼和GBK編碼均采用雙字節(jié)編碼,UTF-8編碼采用三字節(jié)編碼,因此如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)為識(shí)別單位,對(duì)于各識(shí)別單位,如果不存在GBK異常編碼點(diǎn),則需要進(jìn)一步檢測(cè)待識(shí)別中文字符序列的長(zhǎng)度是否能被3整除,以確定所述待識(shí)別中文字符序列的編碼方式。
[0078]步驟350、確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼,流程結(jié)束。
[0079]在步驟340的基礎(chǔ)上,如果不能被3整除,由于UTF-8編碼采用三字節(jié)編碼,則可以確定所述待識(shí)別中文字符序列的編碼方式不是UTF-8編碼,從而得到所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
[0080]步驟360、判斷所述待識(shí)別中文字符序列的每三個(gè)字節(jié)是否存在UTF-8異常編碼點(diǎn),若是,則執(zhí)行步驟350 ;若否,則執(zhí)行步驟320 ;
[0081]在步驟340的基礎(chǔ)上,如果能被3整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每三個(gè)字節(jié)為識(shí)別單位,對(duì)于各識(shí)別單位,進(jìn)一步判斷結(jié)果為存在UTF-8異常編碼點(diǎn),則可以確定待識(shí)別中文字符序列的編碼范圍位于UTF-8編碼的編碼范圍之外,因此確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
[0082]在步驟340的基礎(chǔ)上,如果能被3整除,則對(duì)應(yīng)的編碼方式可能是GB2312編碼、GBK編碼和UTF-8編碼中的任何一種,通過(guò)以待識(shí)別中文字符序列的每三個(gè)字節(jié)為識(shí)別單位,對(duì)于各識(shí)別單位,進(jìn)一步判斷結(jié)果為不存在UTF-8異常編碼點(diǎn),則可以確定待識(shí)別中文字符序列的編碼范圍位于UTF-8編碼的編碼范圍內(nèi),因此確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼。
[0083]實(shí)施例四
[0084]請(qǐng)參閱圖4,為本發(fā)明實(shí)施例四提供的一種中文字符的編碼方式的識(shí)別方法的流程圖。
[0085]該方法包括:
[0086]步驟410、從待識(shí)別字符序列中獲取待識(shí)別中文字符序列;
[0087]從網(wǎng)絡(luò)中直接獲取的待識(shí)別字符序列通常是中、英文和其余特殊符號(hào)混合的組合,因此通過(guò)本步驟可以從直接獲取到的待識(shí)別字符序列中剔除非中文字符,得到待識(shí)別中文字符序列。
[0088]作為本步驟的一種優(yōu)選的實(shí)施方式,具體可以包括:
[0089]將所述待識(shí)別字符序列的每個(gè)字節(jié)分別進(jìn)行十六進(jìn)制轉(zhuǎn)化;
[0090]對(duì)于各字節(jié),如果該字節(jié)對(duì)應(yīng)的十六進(jìn)制值大于0X7F,則保留該字節(jié),否則,將該字節(jié)從所述待識(shí)別字符序列中刪除,將剩余的字符序列作為所述待識(shí)別中文序列。
[0091]需要說(shuō)明的是,對(duì)于待識(shí)別字符序列,由于非中文字符通常采用ASCII編碼,而ASCII編碼采用單字節(jié)編碼,編碼范圍為0x00?0x7F,因此通過(guò)檢測(cè)進(jìn)行十六進(jìn)制轉(zhuǎn)化后的待識(shí)別字符序列的各字節(jié),如果該字節(jié)對(duì)應(yīng)的十六進(jìn)制值大于0X7F,則該字節(jié)為中文字符,從而保留該字節(jié),如果該字節(jié)對(duì)應(yīng)的十六進(jìn)制值小于等于0X7F,則為采用ASCII編碼的非中文字符,例如,字母或者數(shù)字,從而刪除該字節(jié),進(jìn)而由剩余的字符序列形成所述待識(shí)別中文序列。
[0092]本實(shí)施方式,基于ASCII編碼的編碼范圍,以字節(jié)為單位進(jìn)行中文字符的識(shí)別,識(shí)別方式簡(jiǎn)單,提高了從錯(cuò)綜復(fù)雜的網(wǎng)絡(luò)環(huán)境中獲取到的海量待識(shí)別字符序列中獲取待識(shí)別中文字符序列的識(shí)別率。
[0093]步驟420、從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征;
[0094]步驟430、根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。
[0095]本步驟同樣適用于實(shí)施例二中的步驟210-步驟280,此處不再贅述。
[0096]本實(shí)施例的技術(shù)方案,基于ASCII編碼的編碼范圍,以字節(jié)為單位進(jìn)行中文字符的識(shí)別,識(shí)別方式簡(jiǎn)單,提高了從錯(cuò)綜復(fù)雜的網(wǎng)絡(luò)環(huán)境中獲取到的海量待識(shí)別字符序列中獲取待識(shí)別中文字符序列的識(shí)別率;克服了傳統(tǒng)的編碼模式識(shí)別技術(shù)只適用于字符序列存在大量中文字符序列時(shí)的識(shí)別的局限,不但適用于存在大量中文字符的待識(shí)別字符序列,還適用于存在大量ASCII字符等噪聲字符的待識(shí)別字符序列,根據(jù)中文字符編碼特征和非中文字符數(shù)據(jù)傳輸特點(diǎn),提高了識(shí)別中文字符的識(shí)別率;在得到待識(shí)別中文字符序列之后,通過(guò)從待識(shí)別中文字符序列中獲取字符序列的長(zhǎng)度特征,或者獲取字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征,并基于獲取到的字符序列特征,能夠確定待識(shí)別中文字符序列的編碼方式,由于無(wú)需事先建立復(fù)雜的字符概率分布模型,因此簡(jiǎn)化了識(shí)別編碼方式的識(shí)別流程;對(duì)于海量網(wǎng)絡(luò)數(shù)據(jù)中的待識(shí)別中文字符序列,采用長(zhǎng)度特征縮小了檢測(cè)范圍,避免了直接對(duì)待識(shí)別中文字符序列逐一檢測(cè)異常編碼點(diǎn)導(dǎo)致的對(duì)內(nèi)存的占用,在縮小檢測(cè)范圍后,進(jìn)一步結(jié)合異常編碼點(diǎn)特征,提高了編碼方式的識(shí)別效率和準(zhǔn)確率。
[0097]實(shí)施例五
[0098]請(qǐng)參閱圖5,為本發(fā)明實(shí)施例五提供的一種中文字符序列的編碼方式的識(shí)別裝置的結(jié)構(gòu)示意圖,該裝置包括:字符序列特征獲取模塊510和編碼方式確定模塊520。
[0099]其中,字符序列特征獲取模塊510用于從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征;編碼方式確定模塊520用于根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。
[0100]本實(shí)施例的技術(shù)方案,通過(guò)從待識(shí)別中文字符序列中獲取字符序列的長(zhǎng)度特征,或者獲取字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征,并基于獲取到的字符序列特征,能夠確定待識(shí)別中文字符序列的編碼方式,由于無(wú)需事先建立復(fù)雜的字符概率分布模型,因此簡(jiǎn)化了識(shí)別編碼方式的識(shí)別流程;對(duì)于海量網(wǎng)絡(luò)數(shù)據(jù)中的待識(shí)別中文字符序列,采用長(zhǎng)度特征縮小了檢測(cè)范圍,避免了直接對(duì)待識(shí)別中文字符序列逐一檢測(cè)異常編碼點(diǎn)導(dǎo)致的對(duì)內(nèi)存的占用,在縮小檢測(cè)范圍后,進(jìn)一步結(jié)合異常編碼點(diǎn)特征,提高了編碼方式的識(shí)別效率和準(zhǔn)確率。
[0101]在上述方案中,編碼方式確定模塊520有多種實(shí)施方式,例如包括下述至少一項(xiàng):第一編碼方式確定單元、第二編碼方式確定單元、第三編碼方式確定單元、第四編碼方式確定單元、第五編碼方式確定單元、第六編碼方式確定單元、第七編碼方式確定單元和第八編碼方式確定單元。
[0102]其中,第一編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度不能被2整除,則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼;第二編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼;第三編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼;第四編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼;第五編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼;第六編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼;第七編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)不存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼;第八編碼方式確定單元用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
[0103]在上述方案中,所述裝置還可以包括:中文字符序列獲取模塊501,用于在從待識(shí)別中文字符序列中獲取字符序列特征之前,從待識(shí)別字符序列中獲取待識(shí)別中文字符序列。
[0104]中文字符序列獲取模塊501優(yōu)選包括:字節(jié)轉(zhuǎn)化單元和字節(jié)處理單元。
[0105]其中,字節(jié)轉(zhuǎn)化單元用于將所述待識(shí)別字符序列的每個(gè)字節(jié)分別進(jìn)行十六進(jìn)制轉(zhuǎn)化;字節(jié)處理單元用于對(duì)于各字節(jié),如果該字節(jié)對(duì)應(yīng)的十六進(jìn)制值大于0X7F,則保留該字節(jié),否則,將該字節(jié)從所述待識(shí)別字符序列中刪除,將剩余的字符序列作為所述待識(shí)別中文序列。
[0106]在上述方案中,所述裝置還可以包括:解碼模塊530,用于在根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式之后,根據(jù)確定的所述編碼方式對(duì)應(yīng)的解碼方式對(duì)所述待識(shí)別中文字符序列進(jìn)行解碼。
[0107]本發(fā)明實(shí)施例提供的中文字符的編碼方式的識(shí)別裝置可執(zhí)行本發(fā)明任意實(shí)施例所提供的中文字符的編碼方式的識(shí)別方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
[0108]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用于說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其進(jìn)行限制;實(shí)施例中優(yōu)選的實(shí)施方式,并非對(duì)其進(jìn)行限制,對(duì)于本領(lǐng)域技術(shù)人員而言,本發(fā)明可以有各種改動(dòng)和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種中文字符序列的編碼方式的識(shí)別方法,其特征在于,包括: 從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征; 根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式,包括下述至少一項(xiàng): 如果所述待識(shí)別中文字符序列的長(zhǎng)度不能被2整除,則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼; 如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼; 如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼; 如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼; 如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼; 如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼; 如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)不存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼; 如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在從待識(shí)別中文字符序列中獲取字符序列特征之前,還包括: 從待識(shí)別字符序列中獲取待識(shí)別中文字符序列。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,從待識(shí)別字符序列中獲取待識(shí)別中文字符序列,包括: 將所述待識(shí)別字符序列的每個(gè)字節(jié)分別進(jìn)行十六進(jìn)制轉(zhuǎn)化; 對(duì)于各字節(jié),如果該字節(jié)對(duì)應(yīng)的十六進(jìn)制值大于0X7F,則保留該字節(jié),否則,將該字節(jié)從所述待識(shí)別字符序列中刪除,將剩余的字符序列作為所述待識(shí)別中文序列。
5.根據(jù)權(quán)利要求1-4任一所述的方法,其特征在于,在根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式之后,還包括: 根據(jù)確定的所述編碼方式對(duì)應(yīng)的解碼方式對(duì)所述待識(shí)別中文字符序列進(jìn)行解碼。
6.一種中文字符序列的編碼方式的識(shí)別裝置,其特征在于,包括: 字符序列特征獲取模塊,用于從待識(shí)別中文字符序列中獲取字符序列特征,所述字符序列特征包括:字符序列的長(zhǎng)度特征,或者字符序列的長(zhǎng)度特征以及字符序列的異常編碼點(diǎn)特征; 編碼方式確定模塊,用于根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式。
7.根據(jù)權(quán)利要求1所述的裝置,其特征在于,編碼方式確定模塊包括下述至少一項(xiàng): 第一編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度不能被2整除,則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼; 第二編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼; 第三編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼; 第四編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼; 第五編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)存在GB2312異常編碼點(diǎn),且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GBK異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GBK編碼; 第六編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被2整除,且不能被3整除,且所述待識(shí)別中文字符序列的每?jī)蓚€(gè)字節(jié)不存在GB2312異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼; 第七編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)不存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為UTF-8編碼; 第八編碼方式確定單元,用于如果所述待識(shí)別中文字符序列的長(zhǎng)度能被6整除,且所述待識(shí)別中文字符序列的每三個(gè)字節(jié)存在UTF-8異常編碼點(diǎn),則確定所述待識(shí)別中文字符序列的編碼方式為GB2312編碼或GBK編碼。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括:中文字符序列獲取模塊,用于在從待識(shí)別中文字符序列中獲取字符序列特征之前,從待識(shí)別字符序列中獲取待識(shí)別中文字符序列。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,中文字符序列獲取模塊包括: 字節(jié)轉(zhuǎn)化單元,用于將所述待識(shí)別字符序列的每個(gè)字節(jié)分別進(jìn)行十六進(jìn)制轉(zhuǎn)化; 字節(jié)處理單元,用于對(duì)于各字節(jié),如果該字節(jié)對(duì)應(yīng)的十六進(jìn)制值大于0X7F,則保留該字節(jié),否則,將該字節(jié)從所述待識(shí)別字符序列中刪除,將剩余的字符序列作為所述待識(shí)別中文序列。
10.根據(jù)權(quán)利要求6-9任一所述的裝置,其特征在于,所述裝置還包括:解碼模塊,用于在根據(jù)所述字符序列特征,基于設(shè)定的中文編碼識(shí)別策略,確定所述待識(shí)別中文字符序列的編碼方式之后,根據(jù)確定的所述編碼方式對(duì)應(yīng)的解碼方式對(duì)所述待識(shí)別中文字符序列進(jìn)行解碼。
【文檔編號(hào)】G06F17/22GK104360988SQ201410553461
【公開(kāi)日】2015年2月18日 申請(qǐng)日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】許敬緩 申請(qǐng)人:北京銳安科技有限公司