📜  json 只支持 ascii - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:25.162000             🧑  作者: Mango

JSON 只支持 ASCII

简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它常常用于Web应用程序中,通过JSON格式的数据实现不同平台之间的数据交换。然而,需要注意的是JSON只支持ASCII字符集。

ASCII字符集

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,它最初是为了使电报和早期电传打字机能够传输字符而设计的。ASCII将字符编码成7位二进制数,共计128个字符,涵盖了字母、数字、标点符号以及一些控制字符。其中,ASCII码中用到的字符的码值范围是0~127。

JSON只支持ASCII

由于JSON数据通常是通过HTTP或其他网络协议进行传输的,因此需要考虑字符集的兼容性问题。JSON只支持ASCII字符集,这也是JSON轻量级和高效的原因之一。

如果需要使用非ASCII字符,比如中文、日文、韩文等,就需要进行编码,常见的编码方式有UTF-8、UTF-16、UTF-32等。在使用非ASCII字符时,需要进行编码和解码操作。在JavaScript中可以使用encodeURIComponent和decodeURIComponent函数进行编码和解码操作。

示例代码

编码:

const data = { name: '张三', age: 20 };
const encodedData = encodeURIComponent(JSON.stringify(data));
console.log(encodedData); // "%7B%22name%22%3A%22%E5%BC%A0%E4%B8%89%22%2C%22age%22%3A20%7D"

解码:

const encodedData = "%7B%22name%22%3A%22%E5%BC%A0%E4%B8%89%22%2C%22age%22%3A20%7D";
const decodedData = decodeURIComponent(encodedData);
const data = JSON.parse(decodedData);
console.log(data); // { name: '张三', age: 20 }
总结

在Web开发中,JSON是常用的数据交换格式之一,但需要注意的是JSON只支持ASCII字符集。如果需要使用非ASCII字符,需要进行编码和解码操作。