在开始学android的时候提交数据到服务器出现中文乱码问题,经过多方面查资料终于将漂亮的中文在服务器端获取到了.下面总结出三种方法可已经中文乱码解决.第一种.在客户端适用Post方式提交数据:publicstaticStringtoCallOnServer(Stringpath,Stringencode)throwsClientProtocolException,IOException{PostPost=newPost(pathString+path);DefaultClientclient=newDefaultClient();//Post.addHeader("charset",.UTF_8);Responseresponse=client.execute(Post);Post.addHeader("Content-Type","text/html");//这行很重要Post.addHeader("charset",.UTF_8);//这行很重要//上述两行制定提交数据的时候通过什么方式来处理URL,第一句,著名这个URL是以text/html的格式发送给服务器的(个人理解),第二句,设定url的编码方式.以服务器端一致.在.在这里讲解下URL在传递的过程,首先tomcat在接受URL的时候是以iso-8859-1的编码方式进行编码的,在服务器端接收到数据后要用newString(name.getBytes(“iso-8859-1),”utf-8”)这种方式进行转码.if(response.getStatusLine().getStatusCode()==200){InputStreaminputStream=response.getEntity().getContent();returngetContext(inputStream,encode);}return"";}测试代码:publicvoidtestAddQuestion(){try{StringpathS="192.168.1.106:8080/激udian/AndroidServlet?action=edituname=jackquestion=你最喜欢的电影answer=哈利波特";//StringnewPath=URLEncoder.encode(pathS,"utf-8");Stringresult=Utils.toCallOnServer(pathS,"utf-8");Log.i(TAG,result);}catch(ClientProtocolExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOExceptione){//TODOAuto-generatedcatchblock---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---e.printStackTrace();}}服务器端代码:Stringmsg="";Stringuname=request.getParameter("uname").trim();Stringquestion=newString(request.getParameter("question").getBytes("iso-8859-1"),"utf-8");Stringanswer=newString(request.getParameter("answer").getBytes("iso-8859-1"),"utf-8");第二种方式:适用URL和UrlConnetion连接适用GET方法上传数据URLurl=newURL(path);URLConnectionconnection=(URLConnection)url.openConnection();connection.setDoInput(true);connection.setDoOutput(true);connection.setRequestMethod("GET");服务器代码:Stringmsg="";Stringuname=request.getParameter("uname").trim();Stringquestion=newString(request.getParameter("question").getBytes("iso-8859-1"),"utf-8");Stringanswer=newString(request.getParameter("answer").getBytes("iso-8859-1"),"utf-8");---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---测试代码:测试代码中有需要注意的地方Stringpath="192.168.1.106:8080/激udian/AndroidServlet?action=edituname=jack";StringBufferbuffer=newStringBuffer(path);//question=asdfdsaanswer=asdfdasbuffer.append("question=").append(URLEncoder.encode("你最喜欢的电影","utf-8")).append("answer=").append(URLEncoder.encode("哈利波特","utf-8"));//Stringresult=Utils.loginPostData(path,map);Stringresult=Utils.checkLogin(buffer.toString());Log.i(TAG,result);在测试代码中要把中文乱码进行转换处理第三种方式:讲数据封装成map格式,适用URL和URLConnection连接,用POST方式传递.publicstaticStringloginPostData(Stringpath,Map<String,String>map){InputStreaminputStream=null;OutputStreamoutputStream=null;try{URLurl=newURL(path);URLConnectionconnection=(URLConnection)url.openConnection();connection.setDoInput(true);connection.setDoOutput(true);connection.setRequestMethod("POST");StringBufferbuffer=newStringBuffer();if(map!=null!map.isEmpty()){for(Map.Entry<String,String>entry:map.entrySet()){buffer.append(entry.getKey()).append("=").app...