ByteString類用於字符串在UTF8, GBK等不同編碼之間的轉換,並且可以進行MD5,Base64,Hex十六進制轉換。
方法
示例
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);
上面的例子因為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)的完備服務。
閱讀更多 愛碼哥 的文章