我只存在android发中文给web会出现乱码,所以android采用将中文参数转成utf8(下方是转utf8的方法),然后再传给web;web发数据给android时采用对string进行Server.HtmlEncode后再输出,这样可避免双方的乱码。
/**
 * 转换为%E4%BD%A0形式
 * 
 * @param s
 * @return
 */
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = String.valueOf(c).getBytes("utf-8");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0)
k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}