用JavaScript 来将数字转换成字符。
背景: 一切嵌入式设备上面的信息,比如设备名称,设备时区是可以写入到设备上面的寄存器中的(一个寄存器两个字节,2*8 bit),比如 -1 ,写入到寄存器中为 2d31,然后可以通过一些进程将寄存器中的数据上传到我们的数据库中来(比如mysql , postgres)
需求: 我们现在要在web 网页上将设备的名称,时区解析出来。
方案:1. 将16进制的 2d31 转成10进制数据。 parseInt('2d31', 16); //11569
2. 求解出 11569 存到两个字节中是,每个字节对应的数据。。
3. 再将各个字节中的数据通过 fromCharCode()函数转成字符串。
上面两步结合在一起的写法:String.fromCharCode(parseInt(11569/256), 11569%256) //-1
另外:
开发过程中,字符串与十六进、二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制。下面说说具体的转换方法。
1、字符串转换为十六进制
主要使用 charCodeAt()方法,此方法返回一个字符的 Unicode 值,该字符位于指定索引位置。
function stringToHex(str){
var val="";
for(var i = 0; i < str.length; i++){
if(val == "")
val = str.charCodeAt(i).toString(16);
else
val += "," + str.charCodeAt(i).toString(16);
}
return val;
}
调用方法:
var str = "abcde";
stringToHex(str);