开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
凯发app官方网站的技术支持 & 案例 faq 
支付宝小程序
案例分析
sdk & demo下载
常见问题
常用工具
iot小程序
运维保障
小程序 > 支付宝小程序 > 案例分析 > 字符串转换hex string(十六进制字符串)
贡献者
收藏
我的文档
设置
字符串转换为十六进制
主要使用 charcodeat() 方法,此方法返回一个字符的 unicode 值,该字符位于指定索引位置。
xml
复制代码
/* 第一种写法可以在转码后的每个字符前加0x或\\u的标识,后面加空格或制表符。(加标识后可用来转换中文)*/
function str2hex(str){
function str2hex(s){
var str = "";
for (var i = 0; i < s.length; i ) {
str ="0x" s.charcodeat(i).tostring(16) "\\t";
}
return str;
}
/* 第二种写法可以在转码字符串前加0x前缀标识(不加可直接注释:arr.push("0x");)。 适用蓝牙特征值传输。 不可转换中文,会乱码,是由于中文转换后为4个字符,转换成十六进制可以,恢复中文不行:下面转换是以2个字符循环的,中文和字母/数字混在一起后无法判断如何取值*/
function str2hex1(str){
if(str === ""){
return "";
}
var arr = [];
arr.push("0x");//不加"0x"可直接注释:arr.push("0x");
for(var i=0;i<str.length;i ){
arr.push(str.charcodeat(i).tostring(16));
}
return arr.join('');
}
十六进制转换为字符串
主要使用 fromcharcode()方法,此方法将 unicode 码转换为与之对应的字符。
xml
复制代码
/*对应第一种str2hex转换*/
function hex2str(n) {
var str = "";
var s = n.split('0x');
for(var i = 0;i < s.length;i ){
str = string.fromcharcode(parseint(s[i],16)) "\\t";
}
return str;
}
/*对应第二种str2hex1转换*/
function hex2str1(hex) {  
var trimedstr = hex.trim();
var rawstr = trimedstr.substr(0,2).tolowercase() === "0x" ? trimedstr.substr(2) : trimedstr;
var len = rawstr.length;
if(len % 2 !== 0) {
my.alert("illegal format ascii code!");
return ""; 
}  
var curcharcode;  
var resultstr = [];
for(var i = 0; i < len;i = i 2) {
curcharcode = parseint(rawstr.substr(i, 2), 16);   
resultstr.push(string.fromcharcode(curcharcode)); 
}  
return resultstr.join("");
}
编写测试示例代码
第一种写法测试示例:
第二种写法测试示例:
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图