我按照How to convert javascript unicode notation code to utf-8?链接在我的控制台中运行该功能。
function encode_utf8( s ){return unescape( encodeURIComponent( s ) );}( '\u4e0a\u6d77' )
然后我得到:
"上海"
然而,当我这样做时:
foo = function(s){return unescape( encodeURIComponent( s ) );}
foo('\u4e0a\u6d77');
foo("\u4e0a\u6d77");
然后我得到"ä¸æµ·" "ä¸æµ·"
该功能有什么问题?谢谢。
编辑:
我感谢你们的解释。现在我发现你只需要在Chrome控制台'\u4e0a\u6d77'
中直接输入,然后我就会得到“上海”。
然而,我最初的问题是我想在untml程序中将unicode代码转换为utf-8,而不是在控制台中。我找不到答案。
编辑: 我再次感谢你们。 现在我发现我的问题是我从txt文件中获得了类似'\\ u4e0a \\ u6d77'的字符串。 (注意这里有两个反斜杠)。如何将其更改为'\ u4e0a \ u6d77'(我想摆脱一个反斜杠)。 现在我知道一旦你得到'\ u4e0a \ u6d77'(只有一个反斜杠)然后HTML会自动显示为“上海”
编辑: 现在我找到了解决方案:HERE
答案 0 :(得分:2)
您的第一个是函数声明,后面是包含字符串文字的括号中不相关的表达式。永远不会调用该函数。控制台中最终结果是parens中表达式的值,即字符串'\u4e0a\u6d77'
的值,当然是"上海"
。
你的第二个首先创建函数(通过函数表达式),然后调用它(由于某种原因两次),传入该字符串,并显示函数的返回值。
所以你看到了不同之处,因为在第一种情况下,你永远不会调用该函数,只需返回你提供的相同字符串即可。在第二种情况下,您实际调用该函数并返回UTF-8数据。