愛碼哥開發進階之編碼轉換(ByteString)

愛碼哥開發進階之編碼轉換(ByteString)

ByteString類用於字符串在UTF8, GBK等不同編碼之間的轉換,並且可以進行MD5,Base64,Hex十六進制轉換。

方法

愛碼哥開發進階之編碼轉換(ByteString)

愛碼哥開發進階之編碼轉換(ByteString)

示例

UTF8初始化


var byteString = new ByteString('漢字');
var result = byteString.toByteArray();
alert(result); // 輸出結果:[-26,-79,-119,-27,-83,-105]

說明:“漢字”兩個字的UTF8編碼為E6B189和E5AD97,轉換成字節數組就是[-26,-79,-119,-27,-83,-105]

UTF8轉GBK初始化

alert('提示信息');var byteString = new ByteString('漢字', 'gbk');
var result = byteString.toByteArray();
alert(result); // 輸出結果:[-70,-70,-41,-42]

說明:imag.js裡字符串默認都是UTF8的,可以通過ByteString把UTF8字符串轉成GBK。

“漢字”兩個字的GBK編碼為BABA和D7D6,轉換成字節數組就是[-70,-70,-41,-42]

字節數組初始化

var byteString = new ByteString([-26,-79,-119,-27,-83,-105]);
var result = byteString.utf8();
alert(result); // 輸出結果:漢字


var byteString = new ByteString([-70,-70,-41,-42]);
var result = byteString.string('gbk');
alert(result); // 輸出結果:漢字


UTF8轉十六進制字符串

var byteString = new ByteString('漢字');
var result = byteString.hex();
alert(result); // 輸出結果:e6b189e5ad97


UTF8轉字節數組

var byteString = new ByteString('漢字');
var result = byteString.toByteArray();
alert(result); // 輸出結果:[-26,-79,-119,-27,-83,-105]


十六進制字符串轉UTF8

var byteString = ByteString.decodeHex('e6b189e5ad97');
var result = byteString.utf8();
alert(result); // 輸出結果:漢字


UTF8轉Bease64

var byteString = new ByteString('漢字');
var result = byteString.base64();
alert(result); // 輸出結果:5rGJ5a2X


GBK轉Bease64

var byteString = new ByteString('奼夊瓧', 'gbk');
var result = byteString.base64();

alert(result); // 輸出結果:5rGJ5a2X


Bease64UTF8

var byteString = ByteString.decodeBase64('5rGJ5a2X');
var result = byteString.utf8();
alert(result); // 輸出結果:漢字


UTF8轉MD5

var byteString = new ByteString('漢字');
var result = byteString.md5().hex();
alert(result); // 輸出結果:8a97ee1fcddc24870fb66b4b58c41214

說明:md5()方法返回的是ByteString對象。

異常處理

用ByteString轉換數據時,如果輸入數據有問題會導致異常的發生,如下面的例子:

var byteString = ByteString.decodeHex('Wrong data');
var result = byteString.utf8();
alert(result);


愛碼哥開發進階之編碼轉換(ByteString)


上面的例子因為decodeHex()處理數據錯誤而導致異常發生。默認情況下系統會自動捕獲這個異常而且會alert()這個異常,如果有異常問題需要在開發調試階段解決。

如果要在生產環境下避免alert()彈出,可以手動捕獲這些異常,如:

try {
var byteString = ByteString.decodeHex('Wrong data');
var result = byteString.utf8();
alert(result);
} catch(ex){

log(ex);
}

上面的例子在加上try {} catch {}之後不會彈出alert()提示框。

愛碼哥(iMAG)是一款專門用來開發手機APP的工具軟件,它同時具備幾大特點:1.跨平臺開發的效率工具,大幅降低APP開發門檻;2.愛碼哥擁有強大的集成能力,高度模塊化、插件化的開發方式使得用戶可以在短時間裡整合海量功能;3.愛碼哥雲平臺基於雲技術為開發者和企業提供一體化(All In One)的完備服務。


分享到:


相關文章: