为了兼容简体、繁体及其他语系,推荐使用UTF-8编码。

首选,我们看看Android端应该怎么做:

在发送前,应该对参数值要进行UTF-8编码,我写了一个static的 转换函数,在做发送动作前用它将参数值转换成utf8编码:

public class NetUtil {

static public String toUtf8Url(String value) {

try {

return java.net.URLEncoder.encode(value, "utf8");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

return "";

}

}

}

还要注意发送接收函数,返回的httpEntity的返回内容转成BufferedInputStream然后读出byte[],再用new String(byte[],"utf8")这种方式获得返回字符串。

下面是对服务端的处理,首选保证jsp的字符处理都是用UTF-8:

...request.setCharacterEncoding("UTF-8");

有两种办法可让JSP正确将UTF-8解码:

第一种办法简单,配置tomcat的server.xml:vi 打开server.xml,查找 

,然后重启tomcat即可,无需修改JSP代码。

第二种办法,如果没权限修改tomcat配置,那么需要手动转换:

String p_str =URLDecoder.decode(X11checkString((String)request.getParameter("str")),"UTF-8");// 如果修改了server.xml,可直接用这个 String p_str = X11checkString((String)request.getParameter("str"));

测试如下图,英文、简体中文、传统中文、日语并存也可正确解码。

ef8cfea8045929676b54886de8665635.png

原文:http://blog.csdn.net/rocklee/article/details/25473393

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐