JSON.stringify是否不转义Unicode字符?

我在UTF-8中有一个简单的测试页,其中带有多种不同语言字母的文本被字符串化为JSON:

http://jsfiddle.net/Mhgy5/

HTML:

<textarea id="txt">

検索 • Busca • Sök • 搜尋 • Tìm kiếm • Пошук • Cerca • Søk • Haku • Hledání • Keresés • 찾기 • Cari • Ara • جستجو • Căutare • بحث • Hľadať • Søg • Serĉu • Претрага • Paieška • Poišči • Cari • חיפוש • Търсене • Іздеу • Bilatu • Suk • Bilnga • Traži • खोजें

</textarea>

<button id="encode">Encode</button>

<pre id="out">

</pre>

JavaScript:

​$("#encode").click(function () {

$("#out").text(JSON.stringify" title="stringify">stringify({ txt: $("#txt").val() }));

}).click();

虽然我希望根据JSON规范将非ASCII字符转义为\ uXXXX

,但它们似乎未受影响。这是我从上述测试中获得的输出:

{“ txt”:“検索•Busca•Sök•搜寻•Tìmkiếm•Пошук•Cerca•Søk•哈库•Hledání•Keresés•찾기•Cari•阿拉•جستجو•Căutare•بحث•Hľadať•Søg•Serĉu•Pa •Poišči•Cari•חיפוש•Търсене•Іздеу•Bilatu•Suk•Bilnga•Traži•खोजें\ n“}

我使用的是Chrome,因此应该是本机JSON.stringify实现。页面的编码为UTF-8。非ASCII字符不应该转义吗?

首先让我参加此测试的是,我注意到jQuery.ajax当非ASCII字符出现在数据对象属性中时,它们似乎并没有转义。这些字符似乎以UTF-8的形式传输。

回答:

的JSON规范不从Unicode字符需要转换为转义序列。“除“或\或控制字符之外的任何UNICODE字符。”被定义为有效的JSON序列化字符串:

json字符串格式

以上是 JSON.stringify是否不转义Unicode字符? 的全部内容, 来源链接: utcz.com/qa/406858.html

回到顶部