环境编码:
UC_SERVER服务器端(PHP):UTF-8
客户端JAVA:UTF-8
来自:風
问题描述:解密乱码或解密后为空问题,其实都是编码问题
解决方法:
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
}
解密即可正常
问题描述:得到的加密数据后在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);