此代码:
console.log('');
console.log('\uD83D\uDE00');
来自HTML脚本标记:
😀
粘贴到浏览器控制台(同一浏览器):
这里发生了什么导致第一个console.log('');当它包含在脚本标记中时失败,但在浏览器控制台中运行时工作正常。显而易见的问题似乎是它没有转换为代理对,因为第二行按预期工作。
答案 0 :(得分:5)
您的HTML文件未保存在HTTP标头或HTML元标记所宣传的相同编码中。该文件以错误的编码解释,导致错误的字符。这对于unicode转义序列来说并不重要,它是纯ASCII,对非ASCII字面值很重要。
具体猜测:文件保存为UTF-8,但标识为ISO-8859-1。