package com.cg.test;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import org.apache.commons.codec.binary.Hex;
public class HexString {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String s="1a国";
System.out.println("原始字符串:"+s);
System.out.println(s.getBytes("ASCII").length);
String sEncoded = Hex.encodeHexString(s.getBytes("ASCII"));
System.out.println("ASCII: "+sEncoded);
sEncoded = Hex.encodeHexString(s.getBytes("GBK"));
System.out.println("GBK: "+sEncoded);
System.out.println("Default charset: "+Charset.defaultCharset().name());
sEncoded = Hex.encodeHexString(s.getBytes());
System.out.println("Default: "+sEncoded);
//output:3161e59bbd
//BOM: Byte Order Mark 字节序标记
sEncoded = Hex.encodeHexString(s.getBytes("UNICODE"));
System.out.println("UNICODE: "+sEncoded);
// output: feff0031006156fd
sEncoded = Hex.encodeHexString(s.getBytes("UTF-16"));
System.out.println("UTF-16: "+sEncoded);
//output: feff0031006156fd
sEncoded = Hex.encodeHexString(s.getBytes("x-UTF-16LE-BOM"));
System.out.println("x-UTF-16LE-BOM: "+sEncoded);
//output: fffe31006100fd56
sEncoded = Hex.encodeHexString(s.getBytes("UTF-16BE"));
System.out.println("UTF-16BE: "+sEncoded);
//output: 0031006156fd
sEncoded = Hex.encodeHexString(s.getBytes("UTF-16LE"));
System.out.println("UTF-16LE: "+sEncoded);
//output: 31006100fd56
System.out.println("返回当前的 JVM 中可以使用的字符集");
Map m=Charset.availableCharsets();
Set set=m.keySet();
Iterator it=set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}