環境編碼:
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);