public static String bytes2HexString(byte[] b) {
StringBuffer result = new StringBuffer();
for (int i = 0; i < b.length; i++) {
result.append(String.format("%02X", b[i]));
}
return result.toString();
}
/**
* @param src 16进制字符串
* @return 字节数组
* @throws
* @Title:hexString2Bytes
* @Description:16进制字符串转字节数组
*/
public static byte[] hexString2Bytes(String src) {
int l = src.length() / 2;
byte[] ret = new byte[l];
for (int i = 0; i < l; i++) {
ret[i] = Integer.valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
}
return ret;
}
/**
* @param strPart 字符串
* @param tochartype hex目标编码
* @return 16进制字符串
* @throws
* @Title:string2HexString
* @Description:字符串转16进制字符串
*/
public static String string2HexString(String strPart, String tochartype) {
try {
return bytes2HexString(strPart.getBytes(tochartype));
} catch (Exception e) {
return "";
}
}
/**
* @param src 16进制字符串
* @return 字节数组
* @throws
* @Title:hexString2String
* @Description:16进制字符串转字符串
*/
public static String hexString2String(String src, String oldchartype, String chartype) {
try {
byte[] bts = hexString2Bytes(src);
if (oldchartype.equals(chartype))
return new String(bts, oldchartype);
else
return new String(new String(bts, oldchartype).getBytes(), chartype);
} catch (Exception e) {
return src;
}
}
//string转hex(utf8)
public static String string2HexUTF8(String strPart) {
return string2HexString(strPart, "UTF-8");
}
//string转hex(gb2312)
public static String string2HexGBK(String strPart) {
return string2HexString(strPart, "GBK");
}
//hex转string(utf8)
public static String hexUTF82String(String src) {
return hexString2String(src, "UTF-8", "UTF-8");
}
//hex转string(gb2312)
public static String hexGBK2String(String src) {
return hexString2String(src, "GBK", "UTF-8");
}
分享一个在线转码,IP定位小工具——头条在线工具