V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
abcbuzhiming
V2EX  ›  JavaScript

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

  •  
  •   abcbuzhiming · 2017-05-03 10:11:11 +08:00 · 2131 次点击
    这是一个创建于 2797 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在解码需求的范例里看到的这样的东西

    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' + ....................
    转义就失效了,这种字符串只能以常量的方式定义吗?
    5 条回复    2017-05-03 22:37:41 +08:00
    Mitt
        1
    Mitt  
       2017-05-03 10:44:34 +08:00
    转义字符 和 字符串 是不同的两个东西
    ----
    回答: 是的
    fds
        2
    fds  
       2017-05-03 10:49:32 +08:00
    String.fromCharCode(65, 66, 67); // "ABC"
    hxsf
        3
    hxsf  
       2017-05-03 11:58:48 +08:00
    楼主你在想什么=_=

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

    你可能需要 String.fromCharCode(195) // c3(hex) = 195(dec)
    hxsf
        4
    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
        5
    mingyun  
       2017-05-03 22:37:41 +08:00
    @hxsf nice
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1099 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 18:22 · PVG 02:22 · LAX 10:22 · JFK 13:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.