首页 > 开发 > JS > 正文

16进制转换为字符串

2017-09-05 05:51:28  来源:网友分享

"%C1%E9%B4%A8%CF%D8%B2%FD%CE%B5%E6%BF%BE%EA%CA%B3%C6%B7%B5%EA"
这是http参数串的一部分,请问这串怎么转换成字符串呢?

解决方案

python3

>>> s="%C1%E9%B4%A8%CF%D8%B2%FD%CE%B5%E6%BF%BE%EA%CA%B3%C6%B7%B5%EA">>> ls=s.split('%')[1:]>>> bytes(int(x,16)for x in ls).decode('gbk')'灵川县昌蔚婵娟食品店'

js并没有内置的方法用于字符编码转换,需要自己实现。
或者利用浏览器的功能。
参考:
利用javascript进行编码转换,GBK转UTF-8


在nodejs中,可以用iconv-lite来解码。

iconv = require("iconv-lite");s = '%C1%E9%B4%A8%CF%D8%B2%FD%CE%B5%E6%BF%BE%EA%CA%B3%C6%B7%B5%EA'arr = s.split('%')arr.shift()buf = Buffer.from(arr.map(x => parseInt(x,16)))s = iconv.decode(buf, 'gbk')console.log(s)//灵川县昌蔚婵娟食品店