首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么JSON.stringify() \u30FC到ー

为什么JSON.stringify() \u30FC到ー
EN

Stack Overflow用户
提问于 2022-04-26 08:25:57
回答 1查看 68关注 0票数 2

我尝试了下面的代码:

代码语言:javascript
运行
复制
console.log(JSON.stringify({ test: "\u30FCabc" }));

它给出了以下产出:

代码语言:javascript
运行
复制
'{"test":"ーabc"}'

我们知道,主要是JSON.stringify()方法将JavaScript对象或值转换为JSON字符串。根据JSON (https://www.json.org/json-en.html),我们应该能够存储\u30FC。那么为什么"\u30FC"被转换为"ー"呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-26 08:36:52

那么为什么"\u30FC“被转换为"ー”呢?

  1. JavaScript引擎读取字符串文本并进行转换以创建内存中的字符串
  2. 包含该字符串的对象被传递给JSON,并将表示为文字,因为JSON.stringify的编写方式更倾向于文字字符而不是转义序列,而JSON数据格式允许。

一些JSON编码器允许您控制这一点,例如,在PHP中,比较:

代码语言:javascript
运行
复制
<?php echo json_encode('ーabc', JSON_UNESCAPED_UNICODE); ?>

代码语言:javascript
运行
复制
<?php echo json_encode('ーabc'); ?>

…但是JavaScript的JSON.stringify没有任何这样的选项。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72010693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档