`
爱琴海的水手
  • 浏览: 58210 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android客户端向服务器提交请求的中文乱码问题

阅读更多
     下午尝试着从android客户端提交中文字符到服务器端,服务器是tomcat的,利用android自带的apache的httpclient组件,用post方式提交。
     客户端提交请求的代码如下:
     DefaultHttpClient mHttpClient = new DefaultHttpClient();
     HttpPost mPost = new HttpPost("http://10.0.2.2:808/AndroidServer/userService.service");
     List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>(); 
     pairs.add(new BasicNameValuePair("method","addUser"));
     pairs.add(new BasicNameValuePair("email","king@163.com"));
     pairs.add(new BasicNameValuePair("password","112358"));
     pairs.add(new BasicNameValuePair("site.province","北京市"));
     pairs.add(new BasicNameValuePair("site.city","东城区"));
     try {
	mPost.setEntity(new UrlEncodedFormEntity(pairs,HTTP.UTF_8));
	HttpResponse response = mHttpClient.execute(mPost);
      } catch (UnsupportedEncodingException e) {
	// TODO Auto-generated catch block
	 e.printStackTrace();
      } catch (ClientProtocolException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
      } catch (IOException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
      } catch (IllegalStateException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
      } 

    在服务器端提取中文数据后仍然是乱码,但奇怪的是,如果在PC客户端用main方法提交,完全相同的代码,服务器端却能正确提取中文字符,难道是android本身的问题?
    期待高手能解答,下面说下解决方案吧,其实很简单,我在客户端把中文字符用URLEncoder.encode()进行转码,在服务器端用URLDecoder.decode()进行解码,这样就能正常的提取中文字符了,改动过的客户端代码如下:
  pairs.add(new BasicNameValuePair("site.province",URLEncoder.encode("北京市")));
  pairs.add(new BasicNameValuePair("site.city",URLEncoder.encode("东城区")));
0
2
分享到:
评论
1 楼 woodn_z 2011-04-12  
为什么我的英文也是乱码?用了你提供的方法还是一样,乱码。望赐教!

相关推荐

    Android客户端发送请求中文乱码问题完美解决

    Android客户端发送请求中文乱码问题是指在Android客户端向服务器端提交请求时出现的中文乱码问题,这是由于在HTTP请求中,中文字符被编码为乱码字符所致。为了解决这个问题,我们可以从两个方面入手:客户端编码和...

    java做服务器 android做客户端 实现聊天

    在IT行业中,构建一个基于Java服务器和Android客户端的聊天应用是一项常见的任务,它涉及到网络通信、数据传输以及多线程编程等多个技术领域。本项目利用Java作为后端服务器,Android作为前端客户端,通过Socket实现...

    Android编程向服务器发送请求时出现中文乱码问题的解决方法

    在Android编程中,当应用程序需要向服务器发送包含中文字符的请求时,经常会出现中文乱码的问题。这主要是由于编码格式不一致导致的。本篇文章将详细介绍如何解决这一问题。 首先,我们要理解乱码产生的两个主要...

    拦截器解决中文乱码问题

    例如,服务器端使用的编码与客户端发送请求时使用的编码不同,或者服务器处理请求时没有正确地识别和转换编码,都可能导致乱码。为了解决这个问题,我们可以在请求到达控制器之前,通过拦截器进行干预。 以下是使用...

    android中简单的客户端与服务器[归类].pdf

    总的来说,Android客户端与服务器通信的基础流程包括以下步骤: 1. 创建一个`ServerSocket`实例并绑定到特定端口。 2. 在服务器端使用`accept()`方法监听并接收客户端连接请求。 3. 在客户端创建一个`Socket`实例,...

    Android中HTTP请求中文乱码解决办法

    例如,如果服务器端使用的是ISO-8859-1编码方式,而Android客户端使用的是UTF-8编码方式,那么就会出现中文乱码的问题。 解决这个问题可以通过在请求头中添加Content-Type的头信息,指定编码方式为UTF-8。例如: `...

    组播android的客户端和服务端

    3. **Android 组播客户端**:Android客户端通过创建DatagramSocket并加入特定的组播组来接收组播数据。加入组播组通常使用`joinGroup(SocketAddress multicastAddress)`方法。客户端还需要设置一个DatagramPacket...

    Android客户端和服务端配置文档1

    - MyEclipse 2015在处理Servlet中的GET和POST请求时可能存在中文乱码问题,而MyEclipse 10则需要手动处理。 7. **其他工具**: - Eclipse(adt bundle)的安装,适用于Android开发,特别是与Android Studio配合...

    android中简单的客户端

    4. 将预定义的字符串("服务器已经接收到你的请求")编码为UTF-8格式,并写入`OutputStream`,确保在Linux系统中不会有乱码问题。 5. 关闭`OutputStream`和`Socket`,释放资源。 **Android客户端实现** 在Android...

    客户端GET、POST上传数据

    在Android客户端,为了避免乱码,我们需要确保所有字符串都以UTF-8编码,同时在发送请求前设置请求头的字符集。例如,在使用`HttpURLConnection`时,可以这样做: ```java connection.setRequestProperty("Content-...

    服务器端测试GET、POST

    GET和POST主要用于客户端(如Android前端)与服务器之间的通信,而处理中文乱码问题则是一个额外的技术挑战。 GET方法是HTTP中最基础的请求类型,通常用于获取服务器上的资源。它将参数附加到URL中,以问号(?)...

    android和服务器的URLEncodedUtils乱码编码问题的解决方案

    在Android和服务器交互时,URLEncodedUtils乱码问题主要出现在通过URL参数传递中文数据时,这通常涉及到字符编码不一致的问题。以下是一些关键知识点和解决方案: 1. **字符编码基础**: - UTF-8:一种广泛使用的...

    android POST数据遇到的UTF-8编码(乱码)问题解决办法

    在Android开发过程中,POST数据时可能会遇到编码问题,特别是涉及到非ASCII字符时,如中文、特殊符号等。这里我们详细探讨一下如何解决Android POST数据时遇到的UTF-8编码(乱码)问题。 首先,问题的根源在于...

    C#与Android Socket通信

    3. 数据编码:确保客户端和服务器之间数据编码一致,避免乱码问题。 4. 数据包边界:由于网络传输的无界性,需要定义数据包边界,以便正确解析数据。 5. 错误重试:在网络不稳定时,可以设置重试机制,提高通信成功...

    Android网络编程上传下载postGet请求

    在处理中文乱码问题时,GET请求中的中文字符可能会因为浏览器的默认编码(如UTF-8)和服务器的默认编码(如ISO-8859-1)不一致导致乱码。使用HttpClient框架则能避免这种问题,因为它默认使用UTF-8编码。而对于POST...

    Android简洁版FTP服务器

    1. **监听与连接**:Android FTP服务器需监听指定端口(如21),接收客户端连接请求,建立TCP连接。 2. **用户认证**:支持用户名/密码验证,确保只有授权的用户能够访问服务器资源。 3. **文件操作**:提供文件...

    火山安卓http读文本不乱码.rar

    因此,确保服务器和客户端之间的一致性至关重要。 1. **HTTP请求头设置**:在发送HTTP GET或POST请求时,我们通常需要在请求头中指定`Content-Type`,告知服务器我们期望的数据格式。例如,对于UTF-8编码的JSON数据...

Global site tag (gtag.js) - Google Analytics