>백엔드 개발 >PHP 튜토리얼 >base64_encode加密中文字符使用java乱码怎么办

base64_encode加密中文字符使用java乱码怎么办

PHPz
PHPz원래의
2016-06-06 20:42:551739검색

base64_encode加密中文字符使用java乱码怎么办

base64_encode加密中文字符使用java乱码的解决办法:

问题:

Example: “蘋果君华”几个字。

一开始使用的是php urlencode,然后java urldecode,“蘋”字亂碼。

后改用PHP base64_encode,再使用java decode(使用的org.apache.commons.codec.binary.Base64包),"蘋"字OK了,但“君华”倆字亂碼了。

search說是java使用的是非標準的base64解碼,so...求破。

解决方法:

会乱码的原因是你的编码不一致导致的

php中的urlencode的编码是和系统编码一致的(比如windows默认gb2312,ubuntu默认utf-8)

所以首先需要确定你的系统编码,之后根据得到的系统编码在调用java的decode方法的时候,将这个编码传入(考虑到你的例子中有繁体字,所以,建议你使用utf-8编码),以下是我使用utf-8编码的例子(php环境是ubuntun下)

<?php
    echo urlencode("蘋果君华");
?>
output: %E8%98%8B%E6%9E%9C%E5%90%9B%E5%8D%8E
        String ret = java.net.URLDecoder.decode("%E8%98%8B%E6%9E%9C%E5%90%9B%E5%8D%8E", "utf-8");
        System.out.println(ret);
output: 蘋果君华

更多相关技术文章,请访问PHP中文网

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.