charは漢字を保存できますか?|Javaベース
1046 ワード
いいですよ.
Stringは漢字を保存するのがよく分かりますが、charはどのように漢字を保存しますか?
charは、英語でも中国語でも2バイトを固定占有し、Unicode文字を格納するために文字に従って格納されます.範囲は0-65536です.unicode符号化文字セットには漢字が含まれているので,char型変数には当然漢字を格納できる.しかし、ある特殊な漢字がunicode符号化文字セットに含まれていない場合、このchar型変数にはこの特殊な漢字が格納されない.3バイトではあまり使われない字が多く、不要な記憶空間がたくさんあるので、漢字を表す国際コードを1つや3つではなく2バイトで表します.補足説明:1.unicode符号化は固定的に2バイトを占有するため、charタイプの変数も2バイトを占有する.Unicode(Unicode、Unicode、Unicode、Unicode)は、コンピュータ上で使用される文字コードである.各言語の各文字に統一された一意のバイナリ符号化を設定し、言語間、プラットフォーム間でテキスト変換、処理の要求を満たす.従来の符号化方式には欠点がある:1異なる符号化方式の下で異なるアルファベットに対応する可能性がある②大きな文字セットを採用する言語でその符号化長が異なる可能性がある現在の実用的なUnicodeバージョンはUCS-2に対応し、16ビットの符号化空間を使用する.つまり、1文字あたり2バイトを占有します.2.異なる符号化占有バイト数も異なる:utf-32中国語は4バイトである;utf-8コードの中国語はすべて3バイトで、アルファベットは1バイトです.utf-8は長くなるコードだからです.gbk/gbk 18030は中国語で2バイト、英語で1バイトです.
public static void main(String[] args) {
char c=' ';
System.out.println(c);
String s=" ";
System.out.println(s);
}
}
Stringは漢字を保存するのがよく分かりますが、charはどのように漢字を保存しますか?
charは、英語でも中国語でも2バイトを固定占有し、Unicode文字を格納するために文字に従って格納されます.範囲は0-65536です.unicode符号化文字セットには漢字が含まれているので,char型変数には当然漢字を格納できる.しかし、ある特殊な漢字がunicode符号化文字セットに含まれていない場合、このchar型変数にはこの特殊な漢字が格納されない.3バイトではあまり使われない字が多く、不要な記憶空間がたくさんあるので、漢字を表す国際コードを1つや3つではなく2バイトで表します.補足説明:1.unicode符号化は固定的に2バイトを占有するため、charタイプの変数も2バイトを占有する.Unicode(Unicode、Unicode、Unicode、Unicode)は、コンピュータ上で使用される文字コードである.各言語の各文字に統一された一意のバイナリ符号化を設定し、言語間、プラットフォーム間でテキスト変換、処理の要求を満たす.従来の符号化方式には欠点がある:1異なる符号化方式の下で異なるアルファベットに対応する可能性がある②大きな文字セットを採用する言語でその符号化長が異なる可能性がある現在の実用的なUnicodeバージョンはUCS-2に対応し、16ビットの符号化空間を使用する.つまり、1文字あたり2バイトを占有します.2.異なる符号化占有バイト数も異なる:utf-32中国語は4バイトである;utf-8コードの中国語はすべて3バイトで、アルファベットは1バイトです.utf-8は長くなるコードだからです.gbk/gbk 18030は中国語で2バイト、英語で1バイトです.