我正在尝试连接字符串并打印其utf8字符。但是出于某种原因,这似乎不是正确的语法。错误是:
console.log("\u" + i);
^^^
SyntaxError: Unexpected token ILLEGAL
用于生成的代码是
var _ = require('lodash');
_.times(2588, function(i){
console.log("\u" + i);
});
答案 0 :(得分:7)
您可以使用String.fromCharCode
E.g。 String.fromCharCode(0x2588) == "\u2588"
SyntaxError是因为“\ u”不是有效的unicode序列。
答案 1 :(得分:2)
假设您要使用\ 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)))
}
结果:
怀
态
怂
怃
怄
答案 2 :(得分:1)
这里有两个问题:
1)当你连接字符串和代表utf序列的数字时,javascript试图解析&#34; \ u&#34;作为unicode字符,如果你尝试console.log("\u0000"+0)
,结果将是�0
2)UTF 8序列必须包含4个十六进制字符,\u0
不是有效的unicode序列,而\u0000
是。{1}}。 Unicode序列遵循此正则表达式:\u[a-fA-F0-9]{4}
正确答案是Akisame,使用console.log(String.fromCharCode(i));
。另请参阅Generate a list of unicode characters in a for loop
答案 3 :(得分:0)
var message="здравей";
var final=message.concat(" готин"," свят");
alert(final);