2014-10-09 192 views
1

HI我必须尝试多种方法才能将Hex String转换为ASCII String,但不能获得成功。虽然之前我做了同样的事情,但现在我无法实现它。将十六进制字符串转换为字符串

我的代码是

private static String hexToASCII(String hexValue) 
{ 
    StringBuilder output = new StringBuilder(""); 
    for (int i = 0; i < hexValue.length(); i += 2) 
    { 
     String str = hexValue.substring(i, i + 2); 
     output.append((char) Integer.parseInt(str, 16)); 
    } 
    return output.toString(); 
} 

但像b��¡

返回垃圾的价值和我的十六进制字符串是

621c8002008a820101a10a8c0341c2009c0341c2008302010288008a0105 

请帮我,如果有人也从同一个问题遭遇并修复它。

感谢....

+1

http://stackoverflow.com/questions/4785654/convert-a-string-of-hex-into-ascii-in- java – Cativail 2014-10-09 10:24:52

+0

Colud发送你在参数 – Palak 2014-10-09 10:25:27

+0

中传递的“hexValue”的值在创建StringBuilder的* Object *的时候删除'“”'检查'hexValue'中是否有正确的值 – kId 2014-10-09 10:26:33

回答

1

尝试了这一点

public class HextoAsscii { 

    public static void main(String args[]) 
    { 
     String hex="621c8002008a820101a10a8c0341c2009c0341c2008302010288008a0105"; 
     String str=""; 
     str= hexToASCII(hex); 

    } 
    private static String hexToASCII(String hexValue) 
    { 
     StringBuilder output = new StringBuilder(""); 

     for (int i = 0; i < hexValue.length(); i += 2) 
     { 
      if(i+2<=hexValue.length()) 
      { 
      String str = hexValue.substring(i, i + 2); 
      output.append(Integer.parseInt(str, 16)); 
      } 
     } 
     System.out.println(output.toString()); 
     return output.toString(); 
    } 
} 
+0

嘿它是返回响应为“982812820138130111611014036519401563651940131212136013815”,而我想字符串 – 2014-10-09 10:50:25

+0

是的,它是整数的Ascii值,我已经从output.append((char)Integer.parseInt(str,16))删除了char。 http://tomeko.net/online_tools/hex_to_ascii.php?lang=en- hex to ascii ...尽管字符存在,但您得到的是正确的Ascii,但您得到了一些特殊符号,即使这些特殊符号代表了ascii代码 - 点击下面的链接以获得想法 - http://www.asciitable.com/ - 请参阅扩展ascii代码。 – 2014-10-09 10:53:20

相关问题