从UTF-8到EUC-JP的Groovy中的字符编码转换

时间:2018-03-28 12:03:29

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

我们需要为我们的服务之一进行字符编码转换,我们的要求是以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系统中用相同的输入产生同样的摘要的原因。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

错误出现在代码的这一部分:

==

基本上,您尝试将UTF-8字节数组解释为在EUC-JP中编码,这是无意义的。

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

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