如果我有一个 json 字符串,如何计算存储时所需的字节数?

如果我有一个 json 字符串,如何计算存储时所需的字节数?

我有一个 json 字符串格式显示在网页中。我想要了解的是这个 json 字符串需要的字节大小是多少。
如果我复制并通过管道传输到,wc -c我会得到1000字符数,但我不认为这意味着 json 字符串是 1000 字节,正如我在谷歌搜索中看到的建议一样。
我感到困惑的原因如下:
在java中,例如aString是由组成的char,每个字符是2个字节以支持utf-8。 Json 也支持 utf-8 所以我不确定是否应该考虑 json 字符串的大小需要 2000 字节或者有什么方法可以解决这个问题?

答案1

AFAIK,Java内部使用UTF-16,其中从U+0000到U+FFFF的字符(不包括U+D800..U+DFFF,它们不是字符)被编码为16位(2个字节),所有其他字符(来自U+10000 到 U+10FFFF)在 32 位上(2 个 16 位半字节,4 个字节)。

JSON 字符串通常以 UTF-8 编码(根据较新版本的RFC,这甚至是需要交换)。

UTF-8 根据字符的不同,对字符进行 1 到 4 个字节的编码。具体来说,中的所有字符String均编码为 1 个字节。

显然,"JSON 字符串周围有(单字节)字符,它们增加了 2 个字节,并且字符可以转义

例如,

相关内容