我正在尝试连接字符串并打印其utf8字符。然而,由于某些原因,这似乎不是正确的语法。错误为:
console.log("u" + i);
^^^
SyntaxError: Unexpected token ILLEGAL
用于生成的代码是
var _ = require('lodash');
_.times(2588, function(i){
console.log("u" + i);
});
您可以使用String.fromCharCode
例如String.fromCharCode(0x2588) == "u2588"
SyntaxError是因为"\u"不是有效的unicode序列。
假设您想创建带有\u前缀的动态序列,您可以这样做:
//65 --> 0065
Number.prototype.pad = function(size) {
var s = String(this);
while (s.length < (size || 2)) {s = "0" + s;}
return s;
}
for (var i=6000;i<6005;i++) // for example...
{
alert(unescape ('%u' + i.pad(4)))
}
结果:
怀
态
怂
怃
怄
http://jsbin.com/vogeqotoqa/edit?html,js,输出
这里有两个问题:
1) 当您连接字符串和表示utf序列的数字时,javascript试图将"\u"解析为unicode字符,如果您尝试console.log("u0000"+0)
,结果将是�0
2) UTF 8序列必须包含4个十六进制字符,u0
不是有效的unicode序列,而u0000
是。unicode序列遵循以下正则表达式:u[a-fA-F0-9]{4}
正确答案是Akisame的,使用console.log(String.fromCharCode(i));
。另请参阅在for循环中生成unicode字符列表
var message="здравей";
var final=message.concat(" готин"," свят");
alert(final);