Android 客户端与服务端JSP相互传递中文

58 篇文章 0 订阅

  为了兼容简体、繁体及其他语系,推荐使用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:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
...
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  request.setCharacterEncoding("UTF-8");

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

第一种办法简单,配置tomcat的server.xml:vi 打开server.xml,查找 <Connector port="80"关键字,在里面指定URI编码属性: URIEncoding="UTF-8"

,然后重启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"));



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



(转载请注明出处: http://blog.csdn.net/rocklee


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值