首先是后台serlvet代码,response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String username=request.getParameter("username");byte b[] =username.getBytes("ISO-8859-1");
username=new String(b);//后面就是调用方法将username写如数据库
到此时,直接在浏览器上输入http://localhost:8080/工程名/servlet/对应的servlet?username=“中文",在数据库中正确显示了中文,因为这里已经转换了一遍,如果把byte b改成其它编码格式就会出现中文乱码问题,
然后这是android前台的代码,//获取了个中文username
String urlstr=“http://localhost:8080/工程名/servlet/对应的servlet?”+username;URL url=new URL(urlstr);URLConnection conn = null;conn = url.openConnection(urlstr);InputStream in=conn.getInputStream();byte[] buffer=new byte[in.available()];
in.read(buffer);String result=new String(buffer);首先调试的时候,输入英文,可以写入数据库,证明程序无错误,但是输入中文的时候,数据库就产生了中文编码问题,于是将前台获得的username用同样的方法转换(byte b[] =username.getBytes("ISO-8859-1");)结果发现,无论前台是转换成ISO-8859-1或者UTF-8,后台写入的数据库还是出现了中文乱码问题,求问大神们有没有写过,该怎么解决。

解决方案 »

  1.   

    这是前台代码,上面那个显示有问题//获取了个中文username
    String urlstr=“http://localhost:8080/工程名/servlet/对应的servlet?”+username;
    URL url=new URL(urlstr);
    URLConnection conn = null;
    conn = url.openConnection(urlstr);
    InputStream in=conn.getInputStream();
    byte[] buffer=new byte[in.available()];
    in.read(buffer);
    String result=new String(buffer);
      

  2.   

    敢试一下哥的吗?
    对中文部分进行转码
    UrlEncoder.encode(str,"utf-8");
    String UrlStr = "http://192.168.1.110:8080/mp3/"+URLEncoder.encode(测试.mp3,"UTF-8");
    try {
    URL url = new URL(UrlStr);
    HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
    inputStream =urlConn.getInputStream();
    } catch (Exception e) {
    e.printStackTrace();
    }
      

  3.   

    亲,不要纠结了,换数据库吧,mysql数据库中文问题是个老大难问题
      

  4.   

    ,,,我一个工程都用了mysql了,要换我就哭了,,,