环境编码:
UC_SERVER服务器端(PHP):UTF-8
客户端JAVA:UTF-8
来自:風
1.discuz-ucenter-api-for-java DECODE 解密 中文乱码问题
问题描述:解密乱码或解密后为空问题,其实都是编码问题
解决方法:
ucenter/client/Client.java中 uc_authcode 代码
String $result = $result1.substring(0, $result1.length()); 在269行就上面的那一行处改为以下 //String $result = $result1.substring(0, $result1.length()); String $result= $result1.toString(); try{ $result=new String($result.getBytes("iso-8859-1"),"UTF-8"); }catch (Exception e) { $result = $result1.substring(0, $result1.length()); // TODO: handle exception }解密即可正常
2.discuz-ucenter-api-for-java ENCODE 加密 问题
问题描述:得到的加密数据后在PHP中无法解密问题,和上面的一样都是编码问题
原因:英文字符和中文字符同时存在时会出现此问题,单独中文加解密没有此问题
解决方法:
在加密时对中文字符进行编码,以下案例,用户名为中文
String u=""; try { u="uid=1&time=6541314313&email=adsfasdf@adsf.com&username="+java.net.URLEncoder.encode("测试","UTF-8"); } catch (Exception e) { } System.out.println(u); String s= uc.uc_authcode(u, "ENCODE", $key); System.out.println(s);