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)的完备服务。
閱讀更多 愛碼哥 的文章
關鍵字: ByteString 进阶 new