开发者社区> 问答> 正文

使用java解码PHP base64_encode加密字符串为什么乱码?

Example: “蘋果君华”几个字。
一开始使用的是php urlencode,然后java urldecode,“蘋”字亂碼。
后改用PHP base64_encode,再使用java decode(使用的org.apache.commons.codec.binary.Base64包),"蘋"字OK了,但“君华”倆字亂碼了。
search說是java使用的是非標準的base64解碼,求破。

展开
收起
蛮大人123 2016-02-29 16:27:15 4635 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    会乱码的原因是你的编码不一致导致的
    php中的urlencode的编码是和系统编码一致的(比如windows默认gb2312,ubuntu默认utf-8)
    所以首先需要确定你的系统编码,之后根据得到的系统编码在调用java的decode方法的时候,将这个编码传入(考虑到你的例子中有繁体字,所以,建议你使用utf-8编码),以下是我使用utf-8编码的例子(php环境是ubuntun下)
    screenshot
    output: %E8%98%8B%E6%9E%9C%E5%90%9B%E5%8D%8E
    screenshot
    output: 蘋果君华

    2019-07-17 18:50:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
量子加密通信技术 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载