JSON 解析表情符号 unicode 使我的本机项目崩溃

Eug*_*lev 5 javascript unicode json react-native expo

每当我尝试显示从我的 API 端点在我的 React Native 项目中获取的一些数据时,我都会收到此 JSON 解析错误: JSON parse error on line 0 near .."}], [18933, "RC': expected another Unicode escape for the second half of surrogate pair

很明显,Unicode 转义符缺少一个转义符。

我的字符串是“你可以试试,但我不这么认为”

我尝试在控制台中打印字符串并且显示正常,但是当我尝试在 React Native 的<Text></Text>组件中显示它时,我的应用程序崩溃了。

任何指导将不胜感激。

cis*_*sco 1

免责声明:这更多的是猜测,因为我只有你的错误和可以使用的表情符号。

“FACE WITH TEARS OF JOY”的 unicode 字符是 ( U+1F602),代理对是\uD83D\uDE02

如果您\uD83D\uDE02在文本组件中输入并且有效,那么您可以使用进行转换

function findSurrogatePair(point) {
  // assumes point > 0xffff
  var offset = point - 0x10000,
      lead = 0xd800 + (offset >> 10),
      trail = 0xdc00 + (offset & 0x3ff);
  return [lead.toString(16), trail.toString(16)];
}

// find pair for U+1F602
findSurrogatePair(0x1f602); // ["d83d", "de02"]

Run Code Online (Sandbox Code Playgroud)

参考+信用:http://crocodillon.com/blog/parsing-emoji-unicode-in-javascript

免责声明:这更多的是猜测,因为我只有你的错误和可以使用的表情符号。

希望这可以帮助!