【发布时间】:2017-05-04 11:24:10
【问题描述】:
我尝试使用此方法将十六进制字符的字符串转换为字符串:
public String HexToString(String inputString){
StringBuilder output = new StringBuilder();
for (int i = 0; i < inputString.length(); i+=2) {
String str = inputString.substring(i, i+2);
output.append((char)Integer.parseInt(str, 16));
}
return output.toString();
}
输入是:
"4d442020000000020000000000000008ffffffff0000000000000222000001b54d514852463220200000000000000001414d5120434d504c4c33332020202020d75db0581151d02000000000000000000000000000000000000000000000000000000000202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020434d504c4c333320202020202020202020202020202000000000000000000000000000020202020202020202020202020202020202020202020202020202020202020200000001c7765626c6f6...."
此方法有效,但我的消息包含奇怪字符的问题。 转换后,我在标题中收到以下字符:“µMQHRF2”
问题是我怎样才能删除这个标题?当消息在 Hexa 上或转换后我应该这样做吗?以及如何从我的字符串中删除这些字符?
【问题讨论】:
-
您的输入看起来如何?你期望得到什么?
-
My input is an hexa it like ("4d442020000000020000000000000008ffffffff0000000000000222000001b54d514852463220200000000000000001414d5120434d504c4c33332020202020d75db0581151d02000000000000000000000000000000000000000000000000000000000202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020434d504c4c333320202020202020202020202020202000000000000000000000000000020202020202020202020202020202020202020202020202020202020202020200000001c7765626c6f6....") when i convert i recived those strong caracterers at the beging that i want to remove
-
使用“MD”中的方法输出转换“4d44”,那么标题中的“µMQHRF2”是什么意思?
-
您的输入示例包含不可见的 unicode 字符,如以下 sn-p:fontspace.com/unicode/analyzer/?q=200%E2%80%8C%E2%80%8B00 - 您应该去掉这些。
-
此外,当您解码干净版本 (
4d442020000000020000000000000008ffffffff0000000000000222000001b54d514852463220200000000000000001414d5120434d504c4c33332020202020d75db0581151d02000000000000000000000000000000000000000000000000000000000202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020434d504c4c333320202020202020202020202020202000000000000000000000000000020202020202020202020202020202020202020202020202020202020202020200000001c7765626c6f6) 时,您得到的字符串不是字符串,而是来自二进制协议(来自某些消息队列)