1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 10:22:23 +00:00

docs(string): fixed #1086

This commit is contained in:
ruanyf 2021-10-19 09:07:31 +08:00
parent 180c700591
commit de768691a7

View File

@ -122,7 +122,7 @@ const PS = eval("'\u2029'");
根据标准JSON 数据必须是 UTF-8 编码。但是,现在的`JSON.stringify()`方法有可能返回不符合 UTF-8 标准的字符串。
具体来说UTF-8 标准规定,`0xD800``0xDFFF`之间的码点,不能单独使用,必须配对使用。比如,`\uD834\uDF06`是两个码点,但是必须放在一起配对使用,代表字符`𝌆`。这是为了表示码点大于`0xFFFF`的字符的一种变通方法。单独使用`\uD834``\uDFO6`这两个码点是不合法的,或者颠倒顺序也不行,因为`\uDF06\uD834`并没有对应的字符。
具体来说UTF-8 标准规定,`0xD800``0xDFFF`之间的码点,不能单独使用,必须配对使用。比如,`\uD834\uDF06`是两个码点,但是必须放在一起配对使用,代表字符`𝌆`。这是为了表示码点大于`0xFFFF`的字符的一种变通方法。单独使用`\uD834``\uDF06`这两个码点是不合法的,或者颠倒顺序也不行,因为`\uDF06\uD834`并没有对应的字符。
`JSON.stringify()`的问题在于,它可能返回`0xD800``0xDFFF`之间的单个码点。