十六进制(十六进制)是计算机中数据的一种表示方法。同日常生活中的表示法不一样,它由0 - 9,f组成,字母不区分大小写。与10进制的对应关系是:0 - 9对应0 - 9,f对应10 - 15;N进制的数可以用0 ~ (N - 1)的数表示,超过9日的用字母f。不同电脑系统,编程语言对于16进制数值有不同的表示方式:如增加0 x前缀。
这里推荐一个在线转换的小工具方便大家使用:http://tools.jb51.net/transcoding/decode_encode_tool
<强> php函数:强>
bin2hex (str)将字符串转换成16进制
bin2hex(十六进制)将16进制转换成字符串
下面的函数都是单个转换
字符串转16进制
函数strToHexCharCode (str) { 如果(str===" ") 返回"; var hexCharCode=[]; hexCharCode.push (“0 x”); (var=0;我& lt;str.length;我+ +){ hexCharCode.push (str.charCodeAt(我).toString (16)); } 返回hexCharCode.join (" "); }
16进制转字符串
函数hexCharCodeToStr (hexCharCodeStr) { var trimedStr=hexCharCodeStr.trim (); var rawStr=trimedStr.substr (0, 2) .toLowerCase ()===" 0 x " & # 63; trimedStr.substr (2): trimedStr; var len=rawStr.length; 如果(len % 2 !==0) { alert("非法格式ASCII代码!”); 返回"; } var curCharCode; var resultStr=[]; (var=0;我& lt;len;我=+ 2){ curCharCode=方法(rawStr。substr(我,2)、16);//ASCII码值 resultStr.push (String.fromCharCode (curCharCode)); } 返回resultStr.join (" "); }
修改的一个支持将网址转换为\ x编码的
函数strToHexjb51 (str) { 如果(str===" ") 返回"; var hexCharCode=[]; (var=0;我& lt;str.length;我+ +){ hexCharCode.push (“x \ \”); hexCharCode.push (str.charCodeAt(我).toString (16)); } 返回hexCharCode.join (" "); }
例如
document . write (strToHexjb51 (" https://www.jb51.net "));
引用>输出
\ x68 \ x74 \ x74 \ x70 \ x73 \ x3a \ x2f \ x2f \ x77 \ \表示就是x77 \ x77 \ x2e x6a \ x62 \ \ x6e \ x65 \表示就是x35 \ x31 \ x2e x74
引用>想看看对不是,直接用js的警报或document . write (" ")
即可看到加密的字符串,方便隐藏网址与字符等。
测试的时候也可以在chrome中定义例如
str=" \ x68 \ x74 \ x74 \ x70 \ x73 \ x3a \ x2f \ x2f \ x77 \ \表示就是x77 \ x77 \ x2e x6a \ x62 \ \ x6e \ x65 \表示就是x35 \ x31 \ x2e x74”;
<强> Js字符串与十六进制的相互转换强>
开发过程中,字符串与十六进,二进制之间的相互转换常常会用的到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制。下面说说具体的转换方法。
<强> 1,字符串转换为十六进制强>
主要使用charCodeAt()方法,此方法返回一个字符的Unicode值,该字符位于指定索引位置。
函数stringToHex (str) { var val=" "; (var=0;我& lt;str.length;我+ +){ 如果(val==" ") val=str.charCodeAt (i) .toString (16); 其他的 val +=薄ⅰ? str.charCodeAt (i) .toString (16); } 返回val; }调用方法:
var str="中的";
stringToHex (str); 引用>
<强> 2,十六进制转换为字符串强>
主要使用fromCharCode()方法,此方法将Unicode码转换为与之对应的字符
函数hexToString (str) { var val=" "; var arr=str.split (", "); (arr我=0;我& lt;arr.length;我+ +){ arr val +=[我].fromCharCode(我); } 返回val; }调用方法:
var str=" 676865 ";
stringToHex (str); 引用>
3,用方法()方法转换
方法(字符串,基数)方法只能转换字符串类型,对其它类型都返回南(非数字).string表示待转换的字符,基数表示要转为的进制,值介于2 ~ 36之间。
方法(“公元前”,16);//表示把字符串公元前转换为16进制,结果:188
js将URL网址转为16进制加密与解密函数