java エンコーディングの用途は?
Javaにおけるエンコーディングとは、文字集合の文字をバイト列に符号化したり、バイト列から文字を復号する処理です。エンコーディングは、異なるシステム間でテキストデータをやり取りする際に、データの正確性や一貫性を保つために必要になります。
Javaでは、よく使われるエンコード方法がいくつかあります。
- ASCIIコード:アルファベット、数字、よく使われる記号を表す。それぞれの文字は1バイトで表される。
- ISO-8859-1エンコーディング:ラテン-1エンコーディングとも呼ばれ、ヨーロッパで一般的に使用される文字を表します。各文字は1バイトを使用します。
- 世界中の文字を扱える、Unicode文字集合の文字を表現するための、可変長の符号化方式です。
- UTF-16 符号化: Unicode 符号化方式の一種で、各文字は 2 バイトを占め、ほとんどの文字が ASCII 以外の文字である場合に使用されます。
Java では、以下の方法でエンコードおよびデコードできます。
- 文字列をバイト配列にエンコードするには、 String クラスの getBytes() メソッドを使用してください。
- 文字列クラスのコンストラクタかgetBytes()メソッドで文字コードを指定してエンコードします。
- 文字コード変換用に、InputStreamReader と OutputStreamWriter クラスを使用してエンコードとデコードの機能を実現します。
このコードは以下のようになります。
// 编码示例
String str = "Hello, World!";
byte[] bytes = str.getBytes("UTF-8");
// 解码示例
byte[] bytes = {72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33};
String str = new String(bytes, "UTF-8");
エンコードとデコードを行う際は、同じ文字エンコーディングを使用する必要があることに注意してください。そうしないと、 文字化けやデコードエラーが発生する可能性があります。