开发过程中,字符串与十六进、二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制。下面说说具体的转换方法。
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);
stringtohex('ab中国中國'); -- 结果: 41,42,4e2d,56fd,4e2d,570b
2、十六进制转换为字符串主要使用 fromcharcode()方法,此方法将 unicode 码转换为与之对应的字符。
function hextostring(str){
var val="";
var arr = str.split(",");
for(arr i = 0; i < arr.length; i++){
val += arr[i].fromcharcode(i);
}
return val;
}
调用方法:
var str = "676865";
stringtohex(str);
3、用 parseint() 方法转换 parseint(string, radix) 方法只能转换 string 类型,对其它类型都返回 nan(非数字)。string 表示待转换的字符,radix 表示要转为的进制,值介于 2 ~ 36 之间。
parseint("bc",16); //表示把字符串bc转换为16进制,结果:188
parseint("10",8); //表示把字符串10转换为8进制,结果:8
parseint("10",2); //表示把字符串10转换为2进制,结果:2
var str = "abcdeghijklmnopqrstuvwxyz";console.log(stringtohex(str));
str="http://www.qq.com";len=str.length;arr=[];
for(var i=0;i<len;i++){arr.push(str.charcodeat(i).tostring(16));}
console.log("\\x"+arr.join("\\x"));
相关推荐:
javascript进阶(四)js字符串转换成数字的三种方法
以上就是js字符串相互转换十六进制的方法的详细内容。