【问题标题】:Character Encoding Conversion In Groovy From UTF-8 to EUC-JPGroovy 中从 UTF-8 到 EUC-JP 的字符编码转换
【发布时间】:2018-03-28 12:03:28
【问题描述】:

我们需要对我们的一项服务进行字符编码转换,我们的要求是获取 UTF-8 编码格式的字符,并应转换为 EUC-JP,然后在(基于 Groovy)jdk8 上准备一些散列。

在 php 中,类似的解决方案对我们来说效果很好,并且编码为,

$encodedToEucJp = mb_convert_encoding($inputStringWithUtf8, “EUC-JP”);
Print_r(md5($encodedToEucJp));

我们已经尝试了很多方法来解决这个问题,例如,

Java.security.MessageDigest.getInstance(‘MD5’)
.digest(New String(inputStringWithUtf8.getBytes(“UTF-8”), “EUC-JP”)
.getBytes(“EUC-JP”))
.encodeHex()
.toString();

但是,对于一些产生与我们的 php 编码解决方案不同的摘要的字符,此解决方案失败了。这里提到了几个字符 ―, ĭ, ?等等。这就是为什么我们不能在 php 和 java 系统中使用相同的输入生成相同的摘要的原因。

谢谢,提前。

【问题讨论】:

    标签: java groovy utf-8 character-encoding cjk


    【解决方案1】:

    错误在这部分代码中:

    New String(inputStringWithUtf8.getBytes(“UTF-8”), “EUC-JP”)
    

    基本上,您尝试将 UTF-8 字节数组解释为好像它是用 EUC-JP 编码的,这是无稽之谈。

    下面的代码应该可以完成这项工作

        Java.security.MessageDigest.getInstance(‘MD5’)
                .digest(inputStringWithUtf8.getBytes(“EUC-JP”))
                .encodeHex()
                .toString();
    

    【讨论】:

      猜你喜欢
      • 2016-09-06
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多