在javascript

时间:2015-11-14 08:15:48

标签: javascript utf-8

我正在尝试连接字符串并打印其utf8字符。但是出于某种原因,这似乎不是正确的语法。错误是:

 console.log("\u" + i);
            ^^^
 SyntaxError: Unexpected token ILLEGAL

用于生成的代码是

var _ = require('lodash');

_.times(2588, function(i){
    console.log("\u" + i);
});

4 个答案:

答案 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)))
}

结果:

怀
态
怂
怃
怄

http://jsbin.com/vogeqotoqa/edit?html,js,output

答案 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);