Android HttpUrlConnection的使用(四)

  前面的使用之三我简单的说了下app与本地的服务器相连接并进行简单的数据传输,但是后来简单的测试了一下传输中文数据,会发现乱码了!这是怎么回事呢?这里我们解释一下出现这个情况的原因:

1. 首先分析原因:这是因为当我们提交数据时,数据编码格式是iso-8859-1,而服务器那边数据的编码格式是utf-8格式。因此我们想不会出现这种情况的话,必须进行数据转码。
2. 数据转码:服务器后台收到数据我们应该使用相应的方法,将原来的数据格式从iso-8859-1格式转化为utf-8。
Java代码(这个是servlet的Java代码 是服务器的代码,不是客户端):
package com.Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Servlet
 */
public class Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //调用下面的doPost方法
        this.doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //从request中分别获得name age属性
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter pw = response.getWriter();
        //再网页上显示相应的信息
        System.out.println(new String (name.getBytes("iso-8859-1"), "UTF-8"));
        pw.println("name = " + new String (name.getBytes("iso-8859-1"), "UTF-8") + " age = " + age);
        //在控制上显示相应的信息
        System.out.println("11name = " + new String(name.getBytes("iso-8859-1"), "utf-8"));
        System.out.println("age = " + age);
    }

}

  将代码改成这样过后,我们再去测试,如果发现在网页显示的是正确的,而控制台上显示的却是乱码。这个是为什么呢?
  那是因为在编码的时候, jsp文件按照的是iso-8859-1的格式编码,因此要改变它的编码格式。只需将下面的红色部分改变了就是了。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="ISO-8859-1"%>




Insert title here



    
name:
age:
submit:

你可能感兴趣的:(Android HttpUrlConnection的使用(四))