java 字符串转换成gb2312编码格式
字符串“电池”变为 {0xB5,0xE7,0xB3,0xD8},再截取出B5E7B3D8
public static String convertStr(String msg) throws UnsupportedEncodingException {
//先把字符串按gb2312转成byte数组
byte[] bytes = msg.getBytes("gb2312");
StringBuilder gbString = new StringBuilder();
for (byte b : bytes)
{
// 再用Integer中的方法,把每个byte转换成16进制输出
String temp = Integer.toHexString(b);
//判断进行截取
if(temp.length()>=8){
temp = temp.substring(6, 8);
}
gbString.append("%" + temp);
}
return gbString.toString();
}
将String s = “12453467” 转变为bytes[]{0x12,0x45,0x34,0x67}
public static byte[] hexToByteArray(String inHex){
int hexlen = inHex.length();
byte[] result;
if(hexlen%2==1){
//奇数 在前面 补0 如s ="123" 将s转为”0123“
henlen +=1;
result = new byte[(hexlen/2)]; //12是一个byte
inHex = "0"+inHex;
}else{
result = new byte[(hexlen/2)];
}
int j=0;
for(int i=0;i<hexlen;i+=2){
result[j] = hexToByte(inHex.substr(i,2));
}
result result;
}
``
将String s = “12” 转为一个byte 0x12
public static byte hexToByte(String s){
return (byte)Integer.parseInt(s,16);
}