ll中,所述文本編碼系統(tǒng)按照預(yù)設(shè)的轉(zhuǎn)碼規(guī)則,將所述數(shù)據(jù)封包中與所述起始標志、結(jié)束標志和轉(zhuǎn)碼標志相同的數(shù)據(jù)字節(jié)與所述轉(zhuǎn)碼標志進行轉(zhuǎn)碼處理,以得到不同于所述起始標志、結(jié)束標志和轉(zhuǎn)碼標志的轉(zhuǎn)碼結(jié)果,并用所得到的轉(zhuǎn)碼結(jié)果和所述轉(zhuǎn)碼標志來替換所述數(shù)據(jù)字節(jié)。
[0029]具體地,所述文本編碼系統(tǒng)遍歷所述數(shù)據(jù)封包中的所有數(shù)據(jù)字節(jié),當(dāng)檢測出數(shù)據(jù)字節(jié)與所述起始標志、結(jié)束標志和轉(zhuǎn)碼標志相同時,為了避免相應(yīng)的解碼系統(tǒng)做出誤解操作(如,錯認數(shù)據(jù)封包的起止標志、轉(zhuǎn)碼標志等),需要對所檢測出的數(shù)據(jù)字節(jié)進行轉(zhuǎn)碼。
[0030]所述文本編碼系統(tǒng)對所檢測出的數(shù)據(jù)字節(jié)進行轉(zhuǎn)碼,并用所得到的轉(zhuǎn)碼結(jié)果和所述轉(zhuǎn)碼標志來替換所述數(shù)據(jù)字節(jié)的方式包括但不限于:
[0031]I)將所述數(shù)據(jù)封包中與所述起始標志和結(jié)束標志相同的數(shù)據(jù)字節(jié)與所述轉(zhuǎn)碼標志進行邏輯運算,以得到與所述起始標志和結(jié)束標志均不相同的運算結(jié)果,并用所得到的運算結(jié)果和所述轉(zhuǎn)碼標志來替換所述數(shù)據(jù)字節(jié)。
[0032]例如,預(yù)設(shè)的所述起始標志為0x20,預(yù)設(shè)的所述轉(zhuǎn)碼標志為0x40,所述文本編碼系統(tǒng)檢測出數(shù)據(jù)塊中的一數(shù)據(jù)字節(jié)也是0x20,則將所述數(shù)據(jù)字節(jié)與轉(zhuǎn)碼標志進行異或運算得到0x60。所述文本編碼系統(tǒng)按照預(yù)設(shè)的轉(zhuǎn)碼標志+運算結(jié)果的字節(jié)順序,將所述數(shù)據(jù)塊中的0x20數(shù)據(jù)字節(jié)替換成0x400x60。
[0033]2)在所述數(shù)據(jù)封包中與所述轉(zhuǎn)碼標志相同的數(shù)據(jù)字節(jié)前/后插入所述轉(zhuǎn)碼標志,并用所得到的連續(xù)兩個所述轉(zhuǎn)碼標志來替換所述數(shù)據(jù)字節(jié)。
[0034]例如,預(yù)設(shè)的所述轉(zhuǎn)碼標志為0x40,所述文本編碼系統(tǒng)檢測出校驗塊中的一數(shù)據(jù)字節(jié)也是0x40,則在所述數(shù)據(jù)字節(jié)0x40前插入所述轉(zhuǎn)碼標志。即得到替換所述數(shù)據(jù)字節(jié)0x40的兩個字節(jié)的數(shù)據(jù):0x400x40。
[0035]接著,在步驟S12中,所述文本編譯系統(tǒng)在替換后的數(shù)據(jù)封包的首尾處對應(yīng)增加所述起始標志和結(jié)束標志,并予以發(fā)送。
[0036]具體地,所述文本編譯系統(tǒng)將步驟SI中替換后的數(shù)據(jù)封包的首尾處對應(yīng)增加所述起始標志和結(jié)束標志。然后按照http、https等通信協(xié)議,將包含有所述起始標志和結(jié)束標志和數(shù)據(jù)封包發(fā)送至包含有相應(yīng)解碼系統(tǒng)的接收端。
[0037]需要說明的是,本領(lǐng)域技術(shù)人員應(yīng)該理解,上述步驟SI和S2并非一定按照描述順序執(zhí)行。還可以先執(zhí)行步驟S2再執(zhí)行步驟SI。
[0038]實施例二
[0039]如圖2所示。對應(yīng)于實施例一所述的文本編碼方法,本實施例還提供一種文本解碼方法。所述文本解碼方法主要由文本解碼系統(tǒng)來執(zhí)行。其中,所述文本解碼系統(tǒng)包括電子設(shè)備的軟件和硬件。所述電子設(shè)備包括任何能夠按照預(yù)設(shè)程序進行數(shù)值和邏輯運算的設(shè)備,其包括但不限于:單個/多個服務(wù)器、個人終端、移動設(shè)備、嵌入式設(shè)備等。
[0040]在所述文本解碼系統(tǒng)中預(yù)設(shè)有對應(yīng)所述文本編碼系統(tǒng)中所保存的起始標志、結(jié)束標志和轉(zhuǎn)碼標志。其中,所述起始標志、結(jié)束標志和轉(zhuǎn)碼標志均設(shè)為單字節(jié)數(shù)據(jù)。所述起始標志、結(jié)束標志和轉(zhuǎn)碼標志彼此不同。優(yōu)選地,所述起始標志、結(jié)束標志和轉(zhuǎn)碼標志均不為全O和全I字節(jié)。
[0041]在步驟S21中,所述文本解碼系統(tǒng)基于所述起始標志和結(jié)束標志,從所獲取的數(shù)據(jù)包中提取數(shù)據(jù)封包。
[0042]具體地,所述文本解碼系統(tǒng)在接收到一數(shù)據(jù)包時,根據(jù)預(yù)設(shè)的起始標志和結(jié)束標志來提取所述數(shù)據(jù)包中的數(shù)據(jù)封包。其中,所述數(shù)據(jù)封包包括數(shù)據(jù)塊。甚至包括:用于驗證所述數(shù)據(jù)塊的完整性的校驗塊。
[0043]在步驟S22中,所述文本解碼系統(tǒng)檢查所述數(shù)據(jù)封包中的所述轉(zhuǎn)碼標志,按照預(yù)設(shè)的轉(zhuǎn)碼規(guī)則將包含所述轉(zhuǎn)碼標志的兩個字節(jié)的數(shù)據(jù)轉(zhuǎn)換成一數(shù)據(jù)字節(jié),并用所述數(shù)據(jù)字節(jié)來替換所述兩個字節(jié)的數(shù)據(jù),以得到原始的數(shù)據(jù)封包。
[0044]具體地,所述文本解碼系統(tǒng)檢查所述數(shù)據(jù)封包中的每個字節(jié),當(dāng)存在于所述轉(zhuǎn)碼標志相同的數(shù)據(jù)字節(jié)時,按照預(yù)設(shè)的轉(zhuǎn)碼規(guī)則將包含所述轉(zhuǎn)碼標志的兩個字節(jié)的數(shù)據(jù)轉(zhuǎn)換成一數(shù)據(jù)字節(jié),并用所述數(shù)據(jù)字節(jié)來替換所述兩個字節(jié)的數(shù)據(jù),以得到原始的數(shù)據(jù)封包。
[0045]在此,所述將包含所述轉(zhuǎn)碼標志的兩個字節(jié)的數(shù)據(jù)轉(zhuǎn)換成一數(shù)據(jù)字節(jié)的方式包括但不限于:
[0046]I)將包含所述轉(zhuǎn)碼標志的兩個字節(jié)的數(shù)據(jù)中非轉(zhuǎn)碼標志的數(shù)據(jù)字節(jié)與所述轉(zhuǎn)碼標志進行邏輯運算,以得到與所述起始標志、或結(jié)束標志相同的運算結(jié)果,并將所得到的運算結(jié)果替換所述兩個字節(jié)的數(shù)據(jù)。
[0047]例如,所述文本解碼系統(tǒng)檢測出數(shù)據(jù)塊包含:一OxlA 0x040x06…等數(shù)據(jù)字節(jié),其中,0x04為所述轉(zhuǎn)碼標志。按照預(yù)設(shè)的轉(zhuǎn)碼標志+編碼數(shù)據(jù)的組合形式,將0x04數(shù)據(jù)字節(jié)之后的0x06數(shù)據(jù)字節(jié)進行解碼運算,即:將0x06與0x04進行異或運算,得到0x02數(shù)據(jù)字節(jié),則所述文本解碼系統(tǒng)得到的解碼后的數(shù)據(jù)塊包括:一OxlA 0x02…等數(shù)據(jù)字節(jié)。
[0048]2)去除所述數(shù)據(jù)封包中連續(xù)兩個所述轉(zhuǎn)碼標志中的一個所述轉(zhuǎn)碼標志,并將去除后的所述轉(zhuǎn)碼標志作為所述數(shù)據(jù)封包中的原始數(shù)據(jù)。
[0049]例如,所述文本解碼系統(tǒng)檢測出數(shù)據(jù)塊包含:…OxlA 0x040x04…等數(shù)據(jù)字節(jié),其中,0x04為所述轉(zhuǎn)碼標志。按照預(yù)設(shè)的轉(zhuǎn)碼標志+轉(zhuǎn)碼標志的組合形式,將其中一個0x04數(shù)據(jù)字節(jié)予以去除,則所述文本解碼系統(tǒng)得到的解碼后的數(shù)據(jù)塊包括:一OxlA 0x04…等數(shù)據(jù)字節(jié)。
[0050]優(yōu)選地,若所述數(shù)據(jù)封包中包含校驗塊,則所述文本解碼方法還包括:步驟S23。(未予圖示)
[0051]在步驟S23中,所述文本解碼系統(tǒng)驗證所述校驗塊以確定所述數(shù)據(jù)塊是否完整。
[0052]具體地,所述文本解碼系統(tǒng)對應(yīng)于所述文本編碼系統(tǒng),將所述數(shù)據(jù)塊中的所有字節(jié)做加法運算,得到一多字節(jié)的數(shù)值。所述文本編碼系統(tǒng)可以將所述多字節(jié)的數(shù)值取反、或?qū)⑺龆嘧止?jié)的數(shù)值與預(yù)設(shè)的同等字節(jié)的數(shù)值進行異或運算等,將所得到的結(jié)果與所述校驗塊進行比較,若相同,則確定所述數(shù)據(jù)塊完整,反之,則不完整。
[0053]優(yōu)選地,所述文本解碼系統(tǒng)將所述數(shù)據(jù)塊中的所有字節(jié)做數(shù)值計算,并將所得到的數(shù)值計算結(jié)果中的預(yù)設(shè)字節(jié)進行拆分;再將拆分后的多個字節(jié)數(shù)據(jù)與所述校驗塊進行校驗匹配。
[0054]例如,所述文本解碼系統(tǒng)提取所述多字節(jié)的數(shù)值中的最后一字節(jié)數(shù)值,再將所提取的字節(jié)數(shù)值按照低位和高位拆分成兩個字節(jié),其中,所述高位位于第一個字節(jié)的高位,所述低位位于第二個字節(jié)的低位,該兩個字節(jié)的其他位用全O或全I補位。再比較所得到的校驗塊與所接收的所述數(shù)據(jù)封包中的校驗塊是否相同,若相同,則確定所述數(shù)據(jù)塊完整,反之,則不完整。
[0055]實施例三
[0056]如圖3所示,本發(fā)明的第一實施方式涉及一種文本編碼系統(tǒng)。其中,所述文本編碼系統(tǒng)I包括電子設(shè)備的軟件和硬件。所述電子設(shè)備包括任何能夠按照預(yù)設(shè)程序進行數(shù)值和邏輯運算的設(shè)備,其包括但不限于:單個/多個服務(wù)器、個人終端、移動設(shè)備、嵌入式設(shè)備等。
[0057]所述文本編碼系統(tǒng)I包括:第一存儲模塊11、編碼模塊12和封裝模塊13。
[0058]所述第一存儲模塊