Java-nio-charset
提供:Dev Guides
Java NIO-CharSet
Javaには、すべての文字に対して、JVMによって内部的に処理される適切に定義されたUnicodeコード単位があります。したがって、Java NIOパッケージは、主に文字セットとUNICODEのエンコードとデコードに使用されるCharsetという名前の抽象クラスを定義します。
標準文字セット
Javaでサポートされている文字セットを以下に示します。
- US-ASCII -7ビットASCII文字。
- ISO-8859-1 -ISOラテンアルファベット。
- UTF-8 -これは8ビットUCS変換形式です。
- UTF-16BE -これは、ビッグエンディアンバイトオーダーの16ビットUCS変換形式です。
- UTF-16LE -これは、リトルエンディアンのバイト順の16ビットUCS変換です。
- UTF-16 -16ビットUCS変換フォーマット。
Charsetクラスの重要なメソッド
- * forName()*-このメソッドは、指定された文字セット名の文字セットオブジェクトを作成します。名前は正規またはエイリアスにすることができます。
- * displayName()*-このメソッドは、指定された文字セットの正規名を返します。
- * canEncode()*-このメソッドは、指定された文字セットがエンコードをサポートしているかどうかを確認します。
- * decode()*-このメソッドは、指定された文字セットの文字列をUnicode文字セットの文字バッファにデコードします。
- * encode()*-このメソッドは、指定された文字セットのバイトバッファーにUnicode文字セットの文字バッファーをエンコードします。
例
次の例は、Charsetクラスの重要なメソッドを示しています。
package com.java.nio;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
public class CharsetExample {
public static void main(String[] args) {
Charset charset = Charset.forName("US-ASCII");
System.out.println(charset.displayName());
System.out.println(charset.canEncode());
String str= "Demo text for conversion.";
//convert byte buffer in given charset to char buffer in unicode
ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes());
CharBuffer charBuffer = charset.decode(byteBuffer);
//convert char buffer in unicode to byte buffer in given charset
ByteBuffer newByteBuffer = charset.encode(charBuffer);
while(newbb.hasRemaining()){
char ch = (char) newByteBuffer.get();
System.out.print(ch);
}
newByteBuffer.clear();
}
}
出力
US-ASCII
Demo text for conversion.