Javascript:存储访问unicode时无效的Unicode转义序列

时间:2016-09-03 09:26:31

标签: javascript unicode

我在Fontawesome框中设置SELECT图标代码,并在change事件中进行访问。访问时我收到错误:

Invalid Unicode escape sequence

以下代码:

HTML

<select name="faicons" id="faicons" class="form-control selectpicker">
    <option value="0">Select</option>
    <option value="uF26E" class="fa fa-500px"> 500px</option>
    <option value="uF26E" class="fa fa-linkedin"> LinkedIn</option>
</select>

的Javascript

function renderIcon(code) {
    var context = null;
    code = "F26E"
    var icon_code = "\u"+code;
    context = main_canvas.getContext('2d');
    context.font='32px FontAwesome';
    context.fillText(icon_code,20,75);
    context.fillText("My TEXT!", 140, 90);
}

1 个答案:

答案 0 :(得分:9)

只有Unicode转义序列完全包含在单个字符串文字中时才会被识别。连接转义序列的部分将不起作用。要动态地从代码点创建字符串,请尝试String.fromCodePoint。此函数将代码点作为数字,而不是字符串。

// works
console.log("\u0041");

// doesn't work
try {
  eval('console.log("\\u" + "0041");');
}
catch (e) {
  console.log(e.message);
}

// works, but takes a number
console.log(String.fromCodePoint(0x0041));

// works, but not recommended
console.log(eval("'\\u" + "0041" + "'"));

// works with a string
console.log(String.fromCodePoint(parseInt("0041", 16)));