String name="I am 小明";
toHex(name.toCharArray());
try{
byte[] iso8859=name.getBytes("ISO-8859-1");
[java] view plain copy
toHex(iso8859);
[java] view plain copy
byte[] gb2312=name.getBytes("GB2312");
[java] view plain copy
toHex(gb2312);
[java] view plain copy
byte[] gbk=name.getBytes("GBK");
[java] view plain copy
toHex(gbk);
[java] view plain copy
}
[java] view plain copy
String str="小米";
byte[] b=str.getBytes("UTF-8");
[java] view plain copy
public byte[] getBytes(String charsetName)
throws UnsupportedEncodingException {
if (charsetName == null) throw new NullPointerException();
return StringCoding.encode(charsetName, value, 0, value.length);
}
[java] view plain copy
static byte[] encode(String charsetName, char[] ca, int off, int len)
throws UnsupportedEncodingException
{
StringEncoder se = deref(encoder);
String csn = (charsetName == null) ? "ISO-8859-1" : charsetName;
if ((se == null) || !(csn.equals(se.requestedCharsetName())
|| csn.equals(se.charsetName()))) {
se = null;
try {
Charset cs = lookupCharset(csn); //生成字符集实例
if (cs != null)
se = new StringEncoder(cs, csn);
} catch (IllegalCharsetNameException x) {}
if (se == null)
throw new UnsupportedEncodingException (csn);
set(encoder, se);
}
return se.encode(ca, off, len);
}
[java] view plain copy
private static Charset lookupCharset(String csn) {
if (Charset.isSupported(csn)) {
try {
return Charset.forName(csn);
} catch (UnsupportedCharsetException x) {
throw new Error(x);
}
}
return null;
}
[java] view plain copy
private StringEncoder(Charset cs, String rcn) {
this.requestedCharsetName = rcn;
this.cs = cs;
this.ce = cs.newEncoder()
.onMalformedInput(CodingErrorAction.REPLACE)
.onUnmappableCharacter(CodingErrorAction.REPLACE);
this.isTrusted = (cs.getClass().getClassLoader0() == null);
}