Webページにjson文字列形式が表示されています。私が知りたいのは、このjson文字列に必要なバイトサイズです。
コピーしてパイプすることで文字数をwc -c
得ることができますが、1000
インターネット検索で提案を見たように、json文字列が1000バイトという意味ではありません。
私が混乱している理由は次のとおりです。
Javaでは、たとえばaはで構成String
され、char
各文字はutf-8をサポートするために2バイトです。 Jsonはutf-8もサポートしているので、json文字列のサイズが2000バイトであるべきかどうかを検討する必要があるのか、それともこの問題を解決する方法があるのかわかりません。
答え1
AFAIK、Javaは内部的にU + 0000からU + FFFFまでの文字(文字ではなくU + D800..U + DFFFを除く)が16ビット(2バイト)でエンコードされているUTF-16を使用し、他のすべての文字(U + 10000〜U + 10FFFF)は32ビット(2つの16ビットニブル、4バイト)です。
JSON文字列は通常、最新バージョンのUTF-8でエンコードされます。RFC、さらに交換が必要)。
UTF-8は、文字に応じて1〜4バイトの文字をエンコードします。特に、すべての文字はString
1バイトにエンコードされます。
明らかに、"
JSON文字列には、周囲に2バイトを追加する(シングルバイト)文字があります。文字をエスケープできます。
例えば、