Unicode - 这里发生了什么?

JBi*_*ird 2 javascript unicode

这段代码:

 console.log('');
 console.log('\uD83D\uDE00');
Run Code Online (Sandbox Code Playgroud)

来自HTML脚本标记:

 😀
 
Run Code Online (Sandbox Code Playgroud)

然后粘贴到浏览器控制台(同一个浏览器):

 
 
Run Code Online (Sandbox Code Playgroud)

这里发生了什么导致第一个console.log(''); 当它包含在脚本标记中时失败,但在浏览器控制台中运行时工作正常.显而易见的问题似乎是它没有转换为代理对,因为第二行按预期工作.

dec*_*eze 5

您的HTML文件未保存在HTTP标头或HTML元标记所宣传的相同编码中.该文件以错误的编码解释,导致错误的字符.这对于unicode转义序列无关紧要,它是纯ASCII,对非ASCII文字很重要.

具体猜测:文件保存为UTF-8,但标识为ISO-8859-1.