环境编码:
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);
而不去欣赏今天就开在我们窗口的玫瑰。