手机端向服务器提交汉字的时候,经常出现服务器接收到的是乱码。
经过实践,提供出一套解决方案:(虽然本文是android + servlet,应该是通用的)
发送端:通过URLEncoder用UTF-8编码。
//发送请求参数,汉字内容。params.put("content", URLEncoder.encode(content, "UTF-8"));
接收端:
public class ReqUtil { public static String getDecodeParameter(HttpServletRequest req,String param) { try {//先通过ISO_8859-1获取byte,然后再通过UTF-8编码 return new String(req.getParameter(param).getBytes("ISO_8859-1"), "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; }}
就这么简单。。
如果写到数据库还是乱码,请注意数据库编码是否是utf-8的格式。