【问题标题】:Decode hex string in java [closed]在java中解码十六进制字符串[关闭]
【发布时间】:2015-01-22 13:59:25
【问题描述】:

当我试图将十六进制以下转换为 java 字符串时。 因为这是 UTF8 字符。

ЫЙБПАРО因为这个字符串被转换成十六进制的42b41941141f41042041e值。

我尝试使用下面的 javascript 代码将字符串转换为十六进制

function encode(string) {
     var str= "";
        var length = string.length;        
        for (var i = 0; i < length; i++){
            str+= string.charCodeAt(i).toString(16);
            }
        return str;
}

我需要在 java 代码中解码会是什么方式。

尝试以下答案

mkyong.com/java/how-to-convert-hex-to-ascii-in-java

stackoverflow.com/questions/140131

Convert a string representation of a hex dump to a byte array using Java?

【问题讨论】:

  • 在否决这个问题之前,任何人都可以询问更多信息。
  • 您的问题真的含糊不清。目前尚不清楚您的输入实际上是纯文本还是十六进制,或者正在使用什么编码,或者您期望什么输出,或者您已经尝试过什么。
  • 除了以上所有问题(@JonSkeet 你好,Jon!)PLZCANIHAZTEHCODEZ 问题在这里不友好。
  • 我们不应该为了理解this而阅读一个不同的问题。我仍然不清楚你是否真的只是想再次问同样的问题。

标签: java hex decode


【解决方案1】:

你可以试试Apache Codec

byte[] b= Hex.decodeHex(yourhexdecimalstring.toCharArray());
System.out.println(new String(b, "UTF8"));

【讨论】:

  • 你有没有用你的 sn-p 尝试过高于十六进制值。
  • 是的,它返回给我prntscr.com/5vm8dg
  • 而且不正确。 :p 实际上,在 java 端,它总是尝试将十六进制拆分为 2 位数字并尝试将其转换为字符串,其中 javascript 将 pie 之类的字符(即我的字符串的字符)转换为 3 位数字。
  • 答案已编辑。(注意我还没有尝试过)。
  • 对您的答案进行投票。但是还是不行:'(
【解决方案2】:

让我们从第一个字符开始:这是 Unicode 表中的 #1067。 这意味着 4 x 256 + 43。所以它的十六进制表示是 04 和 2B(反之亦然,具体取决于字节顺序)。你的似乎是 42 b4。所以我认为编码不正确。
我不熟悉 jscript 但这段代码...

private void jscript() throws ScriptException {
    ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
    engine.eval("function encode(string) {\n"
            + "     var str= \"\";\n"
            + "        var length = string.length;        \n"
            + "        for (var i = 0; i < length; i++){\n"
            + "            str+= string.charCodeAt(i).toString(16);\n"
            + "            }\n"
            + "        return str;\n"
            + "}"
            + ""
            + "print(encode(\"ЫЙБПАРО\"));");
}

...返回这个

42b41941141f41042041e

正如你所写。但在我看来这是不正确的

【讨论】:

  • 没错,我用在线工具检查。
猜你喜欢
  • 2018-08-21
  • 1970-01-01
  • 2020-11-11
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
  • 2011-03-04
相关资源
最近更新 更多