Internationalization Java

// : c12:EncodeDecode.java
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
public class EncodeDecode {
  public static void print(ByteBuffer bb) {
    while (bb.hasRemaining())
      System.out.print(bb.get() + " ");
    System.out.println();
    bb.rewind();
  }
  public static void main(String[] args) {
    ByteBuffer bb = ByteBuffer.wrap(new byte[] { 0, 0, 0, 0, 0, 0, 0,
        (byte) 'a' });
    System.out.println("Initial Byte Buffer");
    print(bb);
    Charset[] csets = { Charset.forName("UTF-16LE"),
        Charset.forName("UTF-16BE"), Charset.forName("UTF-8"),
        Charset.forName("US-ASCII"), Charset.forName("ISO-8859-1") };
    for (int i = 0; i < csets.length; i++) {
      System.out.println(csets[i].name() + ":");
      print(csets[i].encode(bb.asCharBuffer()));
      csets[i].decode(bb);
      bb.rewind();
    }
  }
} ///:~