1

如何将 unicode 从 HTML 输入转换为 javascript 中的希腊字符?第一个例子不起作用,但第二个例子起作用。

var str = input.value;       \u03B1 (typed into input box)
console.log(str);            \u03B1

var str = "\u03B1";          assigned directly
console.log(str);            α
4

2 回答 2

3

要将字符串中的 unicode 文字转换为实际字符,您可以String.prototype.replace使用String.fromCharCode

var str = '\\u03B1\\u03B2\\u03B3\\u03B4'; // "\u03B1\u03B2\u03B3\u03B4"

str.replace(/\\u([\da-fA-F]{4})/g, function (m, $1) {
    return String.fromCharCode(parseInt($1, 16));
}); // "αβγδ"
于 2013-07-08T23:46:27.750 回答
3

反斜杠在第二个变量中转义str- 在第一个值中,如果 input.value 是,它实际上与通过转义使反斜杠无效\u03B1相同。var str = "\\U03B1"

如果要评估字段中的转义字符,可以这样做:

var str = input.value.replace("\\u", "");
str = String.fromCharCode(parseInt(str, 16));

这是有效的,因为您正在从 \u 之后的所有内容中解析一个整数并将其传递给fromCharCode. 字符代码是整数 - 您正在从原始代码中解析该\u23B1代码。

于 2013-07-08T23:40:06.063 回答