Mega Code Archive

 
Categories / Java / Internationalization
 

Charset encoding test

import java.nio.ByteBuffer; import java.nio.charset.Charset; public class MainClass {   public static void main(String[] argv) throws Exception {     String input = "\u00bfMa\u00f1ana?";     // The list of charsets to encode with     String[] charsetNames = { "US-ASCII", "ISO-8859-1", "UTF-8", "UTF-16BE", "UTF-16LE", "UTF-16",     // "X-ROT13" // This requires META-INF/services     };     for (int i = 0; i < charsetNames.length; i++) {       doEncode(Charset.forName(charsetNames[i]), input);     }   }   private static void doEncode(Charset cs, String input) {     ByteBuffer bb = cs.encode(input);     System.out.println("Charset: " + cs.name());     System.out.println("  Input: " + input);     System.out.println("Encoded: ");     for (int i = 0; bb.hasRemaining(); i++) {       int b = bb.get();       int ival = ((int) b) & 0xff;       char c = (char) ival;       // print index number       System.out.print("  " + i + ": ");       // print the hex value of the byte       System.out.print(Integer.toHexString(ival));       System.out.println(" (" + c + ")");     }   } }