Der*_*會功夫 5 javascript char fromcharcode tampermonkey
理论上,无论输入是什么,输出都应该是不变的:
String.fromCharCode("a".charCodeAt(0)); //"a"
Run Code Online (Sandbox Code Playgroud)
这是有道理的,因为我只是想获取字符的字符代码,然后将其转换回字符。
但是,当我尝试使用此字符时,它会中断:
//"": 55356
String.fromCharCode("".charCodeAt(0)); //"?" (65533)
Run Code Online (Sandbox Code Playgroud)

(请注意,我实际上突出显示了该字符串并将其粘贴到下一行。?由于某种原因,它自行更改为。)
为什么会发生这种情况,我该如何解决?
我注意到 ES6 中有一个新方法,String.fromCodePoint()但不是除 Firefox 之外的所有浏览器都支持它。
它不会改变。
\n\n> String.fromCharCode("".charCodeAt(0)).charCodeAt(0)\n 55356\nRun Code Online (Sandbox Code Playgroud)\n\n您可以通过以下方式检查所有内容:
\n\nfor (var i = 0; i <= 65535; i++) {\n if (String.fromCharCode(i).charCodeAt(0) !== i) {\n console.log(\'error\', i, String.fromCharCode(i)); \n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n您看到的原因\xef\xbf\xbd是因为\xef\xbf\xbd(65533)\n用于替换其值未知或无法在 unicode 中表示的字符。
它被称为替换字符。
\n| 归档时间: |
|
| 查看次数: |
3680 次 |
| 最近记录: |