在浏览网页源码时,有时候会看到以反斜杠\x开头的混淆编码字符串或代码,这是加密的代码或系统的乱码吗?
其实都不是,这些字符仅仅是被转为了十六进制的正常文字.
\号表示转义字符
\x表示只是十六进制,后面跟着两位十六进制字符,表示一个字节的编码.取值范围:\x00 到 \xff
\u则后面跟着四个十六进制字符,表示unicode码,取值范围:\u0000 到 \uffff
\x仅代表电脑能理解的语句,一般表示英文字符,而\u是一种字符集等同于不同字典集当中的字符串,一般表示中文
示例:
\u开头:"\u5341\u516d\u8fdb\u5236"
\x开头:"\x77\x71\x74\x6f\x6f\x6c"
它们也可以混合在一起。
如:"\x77\x77\x77\u5341\u516d\u8fdb\u5236"
那么怎么将这些编码后的文字转为我们方便阅读理解的正常文字呢?
其实很简单,不需要什么字符编码解码工具软件之类的,我们只需要创建一个空白的记事本文件.
然后复制修改以下代码,将需要十六进制解码的文字放在alert()或console.log.
<script type="text/javascript">
alert("\u5341\u516d\u8fdb\u5236");
alert("\x77\x71\x74\x6f\x6f\x6c");
console.log("\u5341\u516d\u8fdb\u5236");
console.log("\x77\x71\x74\x6f\x6f\x6c");
</script>
将代码粘贴到记事本,然后依次选择文件菜单的另存为,保存类型选择所有文件,将名称修改为新建文本.html,主要就是将后缀.txt修改为网页的.html,保存后只需要将其双击用浏览器打开或直接拖动到浏览器中即可查看十六进制代码解码后的正常可识别的文字.
为了实现十六进制编码的解密,主要用到了js中的alert()方法弹出纯文本的对话框或console.log()方法控制台输出原文信息,在浏览器控制台中查看十六进制解码的字符.
我们只需要将需要解码的代码复制到alert()或console.log()的括号中去就可以在弹出窗口或浏览器的控制台信息中查看到十六进制编码的正常的文字字符.
需要注意的是在括号中这些文字左右两边需要英文的""双引号,如果复制进去的代码有换行,需要手动backspace删除键手动将字符串改成一行显示,当代码或文字中本来就存在英文双引号时,我们需要对其进行转义,在字符中的每个英文"号前免加上反斜杠\,来转义成字符串而不是被识别成js代码中的符号.