????Java???????????????????????????????????λ???????????????????????????????
????????????????????е????磬???????? ??????????????????????????壬?????????????????????????
???????????????????String?????????????
?????????Java?е??κ?String??????UNICODE?????????
??????????????GBK?????????String?????????String??GBK??????????Java??String???в???д洢CharSet???????Σ? ????String?е?????????UNICODE??2???????????
????String?????????????????????????(???????????GBK)??????UNICODE????????????Char(?????16λ)?????С?
??????:
????new String(bytes??"gbk");
????????????????????GBK?????????????????GBK??????????????bytes?е????????UNICODE??
???????裬bytes?????GB??????????????????????λ?0??byte???ascii??????????λ?1?????????byte???????????? ?????????
???????????????????????У?????????????3?????????????bytes????????????
????????????????????????????????.getByte()?????????????к?????????
??????:
????"??".getBytes("iso-8859-1");
???????iso-8859-1??????????????"??"??????滻??63?????'?'??????ж???????????
????????????String?????????:
????new String("????".getBytes("iso-8859-1")??"iso-8859-1");
????????????????????????????String:
????new String("????".getBytes("utf-8")??"utf-8");
????Java??????????????????????????????UNICODE?????????????????????????????
?????????????????????????????????????(?????GBK)???String??
??????????????????????????????????Java?????????????????????????в???????
?????????????????? iso-8859-1??????String????????????????????????д洢:
????new String("????".getBytes("GBK")??"iso-8859-1");
?????????GBK??????????????????byte???飬?????iso-8859-1?????????????????????滻?Char(63)??
????=========================================================================
???????????
public static void main(String[] args)
{
String str = "?й?";
printBytes("?й???UNICODE????"?? str.getBytes(Charset.forName("unicode")));
printBytes("?й???GBK????"?? str.getBytes(Charset.forName("GBK")));
printBytes("?й???UTF-8????"?? str.getBytes(Charset.forName("UTF-8")));
}
public static void printBytes(String title?? byte[] data)
{
System.out.println(title);
for (byte b : data)
{
System.out.print("0x" + toHexString(b) + " ");
}
System.out.println();
}
public static String toHexString(byte value)
{
String tmp = Integer.toHexString(value & 0xFF);
if (tmp.length() == 1)
{
tmp = "0" + tmp;
}
return tmp.toUpperCase();
}
???????????????????
?????й???UNICODE????
????0xFE 0xFF 0x4E 0x2D 0x56 0xFD
?????й???GBK????
????0xD6 0xD0 0xB9 0xFA
?????й???UTF-8????
????0xE4 0xB8 0xAD 0xE5 0x9B 0xBD


?????????????WebInject???????????????????????WebService??