Java 如何把gb2312对应的简体中文编码转化为汉字
数据库中某张表的一个字段存储的是gb2312格式的编码符号(如:bdadcbd5),在Java中怎样把它转化为其对应的汉字“江苏”并输出到页面上。希望路过的朋友能给点思路,提供一写好的解决方法。谢谢了!
------最佳解决方案--------------------
String string = "bdadcbd5";
byte[] bytes = new byte[string.length() / 2];
for(int i = 0; i < bytes.length; i ++){
byte high = Byte.parseByte(string.substring(i * 2, i * 2 + 1), 16);
byte low = Byte.parseByte(string.substring(i * 2 + 1, i * 2 + 2), 16);
bytes[i] = (byte) (high << 4
------其他解决方案--------------------
low);
}
System.out.println(new String(bytes, "gbk"));
------其他解决方案--------------------先把这个16进制(看起来像),每两个字母转换为一个 byte 的这种方式,组装为一个 byte[] 数组。
然后:
String str = new String(bytes, "GBK");
------其他解决方案--------------------楼上的 ldh911 你好,先谢谢你给予帮助,可是还是不行,我是这样写的:
String string = "bdadcbd5";
byte[] bytes = string.getBytes("GBK");
String result = new String(bytes,"GBK");
System.out.println(bytes);
System.out.println(result);
输出结果是:
[B@de6ced
bdadcbd5
getBytes()这种方法不是可以把字符串按指定的编码格式转化为bytes数组吗?结果怎么是[B@de6ced,不知哪里错啦。我就是想把 bdadcbd5 转化为它对应的“江苏”两字。
呵呵,因为是新人,很多地方都不懂,希望能给点代码或者描述的更详细点。谢谢!