我有一个十六进制字符串,我正在将其转换为 ascii,但结果显示带有一些特殊字符的输出。
Actual string = adsfads output string = adsfads���
String hex = "61647366616473000000";
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2) {
String str = hex.substring(i, i+2);
int decimal = Integer.parseInt(str, 16);
output.append((char)decimal);
}
System.out.println(output);
最佳答案
您的代码很好。没有特殊字符显示。
只需再次检查您的代码即可。
关注这篇文章
Convert a String of Hex into ASCII in Javapublic class Test8 {
public static void main(String []args)
{
String hex = "61647366616473000000";
StringBuilder output = new StringBuilder();
for (int i = 0; i < hex.length(); i+=2) {
String str = hex.substring(i, i+2);
int decimal = Integer.parseInt(str, 16);
output.append((char)decimal);
// System.out.println("\n");
//output.append((char)Integer.parseInt(str, 16));
}
System.out.println(output);
}
}
关于java - Java鞋中的十六进制到ascii转换一些特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34148810/