16进制转换为字符串

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

阅读 4k
3 个回答

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)
//灵川县昌蔚婵娟食品店

decode一下就好了。。
decodeURI方法

首先搞清楚你这是什么编码的,再找对应的方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题