Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中连接utf字符串时出错_Javascript_Utf 8 - Fatal编程技术网

在javascript中连接utf字符串时出错

在javascript中连接utf字符串时出错,javascript,utf-8,Javascript,Utf 8,我正在尝试连接字符串并打印其utf8字符。然而,出于某种原因,这似乎不是正确的语法。错误是: console.log("\u" + i); ^^^ SyntaxError: Unexpected token ILLEGAL 用于生成的代码是 var _ = require('lodash'); _.times(2588, function(i){ console.log("\u" + i); }); 这里有两个问题: 1) 当您连接字符串和表示utf序列

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

 console.log("\u" + i);
            ^^^
 SyntaxError: Unexpected token ILLEGAL
用于生成的代码是

var _ = require('lodash');

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

这里有两个问题:

1) 当您连接字符串和表示utf序列的数字时,javascript尝试将“\u”解析为unicode字符,如果您尝试
console.log(“\u0000”+0)
,结果将是�0

2) UTF 8序列必须包含4个十六进制字符,
\u0
不是有效的unicode序列,
\u0000
是有效的unicode序列。Unicode序列遵循以下正则表达式:
\u[a-fA-F0-9]{4}


正确答案是相同的,使用
console.log(String.fromCharCode(i))。另请参见您可以使用
String.fromCharCode

例如
String.fromCharCode(0x2588)=“\u2588”


语法错误是因为“\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)))
}

没有解释SyntaxError thoughtry console.log(“\u0”)和console.log(\u0000”),您将看到第一个给出语法错误,而第二个没有\u始终是unicode字符的前缀。Firebug给了我一个更详细的错误:“SyntaxError:格式错误的Unicode字符转义序列”是的,但是OP没有记录
“\u0”
,他们记录的是
“\u”+0
,在这种情况下它们是不等价的。你是对的,我回答得太匆忙了。我要编辑答案或
String.fromCharCode(parseInt(i,16))
i
转换为他想要动态构建的十六进制。这是如何回答这个问题的?@RoyiNamir实际上,这就是答案。无法将“\u”与另一个字符串连接起来,因为“\u”不是有效的unicode序列<代码>字符串。fromCharCode
接受数字而不是字符串作为参数。只要看一下文档就可以了。毫无疑问,他应该避开
\\u
,但我仍然认为他想从
'\\u'+'0065'
中取出字符,尽管unescape已被弃用
怀
态
怂
怃
怄
var message="здравей";
var final=message.concat(" готин"," свят");
alert(final);