JS 的 16 进制转义字符只能使用常量的模式吗,能用变量拼吗?

2017-05-03 10:11:11 +08:00
 abcbuzhiming
在解码需求的范例里看到的这样的东西

jschardet.detect("\xc3\xa0\xc3\xad\xc3\xa0\xc3\xa7\xc3\xa3")

这串"\xc3\xa0\xc3\xad\xc3\xa0\xc3\xa7\xc3\xa3"是个 16 进制转义字符串,但是当我试图拼出这么个“字符串”的时候
'\x' + 'c3' + '\x' + 'a0' + ....................
转义就失效了,这种字符串只能以常量的方式定义吗?
2118 次点击
所在节点    JavaScript
5 条回复
Mitt
2017-05-03 10:44:34 +08:00
转义字符 和 字符串 是不同的两个东西
----
回答: 是的
fds
2017-05-03 10:49:32 +08:00
String.fromCharCode(65, 66, 67); // "ABC"
hxsf
2017-05-03 11:58:48 +08:00
楼主你在想什么=_=

\xc3 是一个字符, 不是 \ + x + c + 3

你可能需要 String.fromCharCode(195) // c3(hex) = 195(dec)
hxsf
2017-05-03 12:06:16 +08:00
对了, 可能你还需要这个

不推荐: '0xc3' - 0 // 195
不推荐 es5: parseInt('0xc3') // 195
推荐 es5: parseInt('c3', 16) // 195
注意 es6: parseInt => Number.parseInt
mingyun
2017-05-03 22:37:41 +08:00
@hxsf nice

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/358714

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX