2 u010089114 u010089114 于 2016.01.29 18:30 提问

安卓接收服务器数据乱码

图片说明
服务端:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);

    String name=new String((request.getParameter("name")).getBytes("iso-8859-1"),"utf-8");

    String age=request.getParameter("age");
    PrintWriter pw=response.getWriter();

    sqlConnection sc=new sqlConnection(name,age,pw);
    String encoding = System.getProperty("file.encoding");  
    System.out.println("Encoding:" + encoding);  
    response.setHeader("Content-Type", "application/json;charset=UTF-8");
    response.getWriter().write(new String("试试"));
    System.out.println("name"+name+"age"+age);
}
客户端:

BufferedReader bf=new BufferedReader(new InputStreamReader(hc.getInputStream()));
StringBuffer sb=new StringBuffer();
while((s=bf.readLine())!=null){
sb.append(s);
System.out.println("接收到"+URLDecoder.decode(sb.toString(),"UTF-8"));

    }

3个回答

devmiao
devmiao   Ds   Rxr 2016.01.30 06:30
u010089114
u010089114 没用
接近 2 年之前 回复
breakorcontinue
breakorcontinue   2016.01.30 16:43

看一下你Tomcat配置的编码格式是不是UTF-8

breakorcontinue
breakorcontinue 利用request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,只对POST方式提交的数据有效,对GET方式提交的数据无效! 要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
接近 2 年之前 回复
crazy1235
crazy1235   Ds   Rxr 2016.01.31 20:38

都是用同样的编码是不会乱码的、

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!