Try the following to print all valid characters in order of encoded values.
public static void main(String... args) { printCharactersFor("US-ASCII"); printCharactersFor("IBM037"); } private static void printCharactersFor(String charsetName) { System.out.println("Character set map for " + charsetName); Charset charset = Charset.forName(charsetName); SortedMap<BigInteger, String> charsInEncodedOrder = new TreeMap<BigInteger, String>(); for (int i = Character.MIN_VALUE; i < Character.MAX_VALUE; i++) { String s = Character.toString((char) i); byte[] encoded = s.getBytes(charset); String decoded = new String(encoded, charset); if (s.equals(decoded)) charsInEncodedOrder.put(new BigInteger(1, encoded), i + " " + s); } for (Map.Entry<BigInteger, String> entry : charsInEncodedOrder.entrySet()) { System.out.println(entry.getKey().toString(16) + " " + entry.getValue()); } }
and it creates something that matches http://www.fileformat.info/info/charset/IBM037/grid.htm
source share