android 和服务器的URLEncodedUtils乱码编码问题
来源:互联网 发布:窗帘品牌 知乎 编辑:程序博客网 时间:2024/05/18 02:04
在android开发中我们常常遇到与到乱码问题,遇到乱码问题首先我们要先检查两端编码格式是否一致!
一般我们提交数据用get 和post方法,这两种方法在上传中有con.setRequestProperty("Charset", "UTF-8"); 和httppost.setEntity(new UrlEncodedFormEntity(数据,"UTF-8"));这两中方式来确定编码方式服务器端有request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");来确定响应的编码格式。这样一般是不会出现乱码,如果出现乱码我们还可以建立一个过滤器来过滤乱码,在这里我不讲过滤器,改天再单独说一下过滤器。
今天我想说的是关于在post传递参数,在路径后+?+参数传递方式,然后传递后的接受乱码问题。
首先我们安卓端要封装数据String str=URLEncodedUtils.format( 封装好的Parameters数据,"UTF-8"); 然后默认utf-8编码,然后HttpPath.FABU_PATH+"?"+str 把数据接在路径下边用post方式提交。在这里用了URLEncodedUtils将数据编码了。
接下来说的是服务器接受问题。服务器接受数据后会进行默认的转码,Tomact的默认转码格式是ISO_8859-1 所有我们要再次转码。需要两次转码,下边就是服务器转码代码
String=new String(request.getParameter("runame").getBytes("ISO_8859-1"),"UTF-8");
那么用URLEncodedUtils编码发送数据的一套代码如下
安卓:String str=URLEncodedUtils.format( 封装好的Parameters数据,"UTF-8");
java服务器: String=new String(request.getParameter("runame").getBytes("ISO_8859-1"),"UTF-8");
runame是封装好的数据中的一个字段;
下面是关于url解码的一些东西:
第一种方式指定编码UTF-8
传递页面
URLEncoder.encode(name,"UTF-8")
获取页面
String name=new String(request.getPatameter(name).getBytes("ISO_8859-1"),"UTF-8");
或者
传递页面
URLEncoder.encode(name);
获取页面
String name=new String(request.getPatameter(name).getBytes("ISO_8859-1));
第二种方式是没有指定编码的,按平台默认的编码。
不能写成
传递页面
URLEncoder.encode(name,"UTF-8")
获取页面
String name=new String(request.getPatameter(name).getBytes("ISO_8859-1));
这样的话有可能出现乱码。因为你不知道平台的编码是什么。
所以只能按第一或者第二种形式,java推荐我们用第一种指定编码“utf-8”
- android 和服务器的URLEncodedUtils乱码编码问题
- Android 和SQLITE 3的中文乱码,编码问题。
- 个人笔记--Android 和 服务器通信 的乱码问题
- SSH的编码 和 ajax乱码问题
- JAVAIO编码的乱码问题和解决办法
- 在一些国外服务器上编码乱码的问题
- 服务器和客户端的编码问题
- 乱码问题, (文件下载功能时, 下载不下来,编码要和服务器系统编码一致
- Android studio乱码 编码问题
- 关于python的编码问题和raw_input的乱码问题
- Servlet:编码和乱码问题
- Android Studio中编码(乱码)问题的解决方案
- Android Studio中编码(乱码)问题的解决方案
- Android Studio编译时编码(乱码)问题的解决办法
- PHP utf-8和gb2312编码转换乱码的问题
- 有关struts.xml的地址和中文编码乱码问题
- 客户端和服务器编码问题
- 解决 web 字符编码乱码问题-----charSet 和PageEncoding的区别--request编码问题
- x265的CMake编译参数设置
- 关于android 使用bitmap的OOM心得和解决方案
- 转 命令行下玩VC
- A list of open source C++ libraries
- #define变量
- android 和服务器的URLEncodedUtils乱码编码问题
- ubuntu 开启nfs服务
- wpf 之ComboBox的用法
- C语言之详解#ifdef等宏及妙用
- matlab 行和列
- NFS配置以实现开发板挂载虚拟机里的linux根文件系统
- 三月份总结-翻转课堂感悟
- DedeCMS二次开发 - 文件结构了解
- Codeforces#297 B Pasha and Strini