如何将十六进制值转换为字符串?我通过使用以下方法得到了这个奇怪的结果。
例如:
String result = DB_record.convertHexToString(PASSWORD);
// c53255317bb11707d0f614696b3ce6f221d0e2f2 hex value;
System.err.println("result==="+result);
public String convertHexToString(String hex){
StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();
for( int i=0; i<hex.length()-1; i+=2 ){
//grab the hex in pairs
String output = hex.substring(i, (i + 2));
//convert hex to decimal
int decimal = Integer.parseInt(output, 16);
//convert the decimal to character
sb.append((char)decimal);
temp.append(decimal);
}
return sb.toString();
}
答案 0 :(得分:0)
问题在这里 sb.append((char)的十进制);
这不是一种正确的方法,如何将int转换为String。
试试这个
sb.append(Integer.toString(decimal));
答案 1 :(得分:0)
byte[] bytes = DatatypeConverter.parseHexBinary(hexString);
String result= new String(bytes, encoding);