我需要帮助了解如何处理 JSON \u 涉及代理对的转义

问题描述

我已经把自己扔进了游泳池的深处,所以如果我有点挣扎,请原谅我:

背景:

JavaScript strings - UTF-16 vs UCS-2?

https://mathiasbynens.be/notes/javascript-encoding

我一直在查看以下两个链接,但它给我留下了一些问题:

看来(根据我的理解)您可以使用一对替代的 JSON 转义符来表示 32 位代码点,例如“\uD834\uDF06”

一个问题:准确吗?这就是你在 JSON 中表示 32 位 unicode 代码点的方式(我听说 javascript 引擎有点奇怪,因为规范早于 utf-16,所以它们可能不会将代理作为一个字符处理?但我不想关心那个。我希望我不必)

第二个问题:假设这是准确的,是否有可能使用一个 JSON 转义符和同一字符串中的几个扩展字符来创建有效的代理对?我应该能够在我的代码中处理它吗?我的意思是,如果我遇到类似 "\uD834��" 之类的东西,其中 � 是一个任意值,可能在扩展字符范围内,我应该由于无效代理对而失败,还是应该将 � 字符视为后半部分这对? (我的字符是我代码中的一个字节,我在内部使用 utf8,因此上述两个扩展字符总共为 16 位)

这还有意义吗?我什至不确定我在这里问的问题是否正确,所以请原谅我。我对此很陌生。

顺便说一下,我必须知道这一点,而不是使用现有的库和东西,因为我的目标平台包括 Arduino 和我的 JSON 库,在该平台上,一切都是你自己的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)