从UTF-8到EUC-JP的Groovy中的字符编码转换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从UTF-8到EUC-JP的Groovy中的字符编码转换相关的知识,希望对你有一定的参考价值。
我们需要为我们的服务之一进行字符编码转换,我们的要求是以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系统中用相同的输入产生同样的摘要的原因。
提前致谢。
答案
错误出现在代码的这一部分:
New String(inputStringWithUtf8.getBytes(“UTF-8”), “EUC-JP”)
基本上,您尝试将UTF-8字节数组解释为在EUC-JP中编码,这是无意义的。
以下代码应该完成这项工作
Java.security.MessageDigest.getInstance(‘MD5’)
.digest(inputStringWithUtf8.getBytes(“EUC-JP”))
.encodeHex()
.toString();
以上是关于从UTF-8到EUC-JP的Groovy中的字符编码转换的主要内容,如果未能解决你的问题,请参考以下文章
BeautifulSoup 在从 utf-8 解码到 unicode 时遗漏了一些字母