最近在做支付宝App上的代扣功能,支付宝的平台是JAVA的,给的一个Demo包也是Java并且是GBK编码的。
前提已经说完了,然后说过程:
因为App和App使用的Web页面是用的UTF-8编码的,所以Web在Post数据的时候出现了一个问题:在JAVA上获取的中文字符全部是乱码,并且不管在PHP怎么设置编码,JAVA上获取的都是乱码!数字、字母都不会是乱码!
于是,哥凌乱了……
凌乱了……凌乱了……
无奈,请教大牛~ ,不愧为大牛,支一招:做base64编码
于是在JAVA上作编码:
public class Test {
/**
* 编码
* @param bstr
* @return String
*/
public String encode(byte[] bstr){
return new sun.misc.BASE64Encoder().encode(bstr);
}
/**
* 解码
* @param str
* @return string
*/
public byte[] decode(String str){
byte[] bt = null;
try {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
bt = decoder.decodeBuffer( str );
} catch (IOException e) {
e.printStackTrace();
}
return bt;
}
在PHP上也做编码:base64_encode(XXX),
于是,于是,接过就正常了……
看来,当用一种方法(做转码)行不通的时候,完全可以换一种方法(做编码)。
条条大路通罗马
如果有不明白的联系我,我会和你一起分享:QQ 57882712