Android Retrofit 中文乱码问题的解决办法

Android Retrofit 中文乱码问题的解决办法

使用retrofit和rxjava,提交数据时需注意,当数据中有中文时,传到后台,可能会是乱码,需处理:

解决:

1.GET请求改成POST;

2.参数Field改成Query

3.加上@FormUrlEncoded

如下:

@FormUrlEncoded @POST("/test/test") Call<Response> register(@Field("name") String name); @FormUrlEncoded @POST("/test/test") Call<SomeResponse> someEndpoint(@FieldMap Map<String, String> names);

解决例子:

如此写上报后台会有乱码:(若name和remark有中文)

//支付订单 @GET("app/shopcart/pay") Observable<NormalResult> payOrder( @Query("token") String token, @Query("shopcartIdArray") String[] shopcartIdArray, @Query("name") String name, @Query("remake") String remake );

修改为:

//支付订单 @FormUrlEncoded @POST("app/shopcart/pay") Observable<NormalResult> payOrder( @Field("token") String token, @Field("shopcartIdArray") String[] shopcartIdArray,@Field("name") String name, @Field("remake") String remake );

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-11-05 20:28:41

Android Retrofit 中文乱码问题的解决办法的相关文章

Ajax传输中文乱码问题的解决办法_AJAX相关

AJAX简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. ajax传输中文乱码问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj

jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法_jquery

序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = deco

JS中页面与页面之间超链接跳转中文乱码问题的解决办法_javascript技巧

在原页面一张图片上添加了一个链接,链接中有中文,于是出现下面的情况:   解决办法是在tomcat的server.xml文件的中加入URIEncoding="utf-8",如下: <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443

Ajax传输中文乱码问题的解决办法

AJAX简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. ajax传输中文乱码问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj

Javamail中的常见中文乱码问题与解决办法(综合)

解决|问题|中文|中文乱码 在使用javamail api开发邮件服务系统时,我们常常会碰到很多中文乱码问题,下面就分别介绍如何解决这些问题. 1.发送名称含中文的附件到邮件服务器,用别的邮件接收程序接收到的附件名显示为乱码 解决办法:在调用MimeBodyPart的setFileName()时使用Base64编码.例如: BASE64Encoder enc = new BASE64Encoder();//该类位于jre/lib/rt.jar中 //fds为FileDataSource实例 mb

jsp和servlet操作mysql中文乱码问题的解决办法

  自己做测试的时候用到jsp/servlet 向mysql中写数据,但是中文总是乱码,今早纠结了半天才搞定,分享给大家我的解决办法 首先看是从什么地方开始出现的乱码,只要统一编码,就不会出现乱码,下面以uft-8(个人认为最好)为例,详细说明: 1.如果乱码是从jsp页面出现的,jsp头部页面加上: 在head标签中加上标签. 2.如果乱码是在servlet中出现的,则有两种方法: 一种是在每个servlet中doget和doPost方法头部加上 request.setCharacterEnc

ajax中文乱码的各种解决办法总结_AJAX相关

由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码.而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码. 有一种解决办法就是使用encodeURIComponent加上修改 Content-Type 为 application/x-www-form-urlencoded" 来把数据统一编码成 url 格式,当然,也可以指定编码,如:"application/x-www-form-urlencode

mysql中文乱码问题各种解决办法

修改mysql配置解决乱码 首先: 用show variables like "%colla%":show varables like "%char%":这两条命令查看数据库与服务端的字符集设置 如果查看出来都是gbk2312,或 gbk,那么就只能支持简体中文,繁体和一些特殊符号是不能插入的,我们只有修改字符集为UTF-8, 修改方法如下: 用记事本或UitraEdit打开mysql数据库安装目录下的my.ini文件打开, 然后Ctrl+F搜索default-ch

ajax中文乱码的各种解决办法总结

由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码.而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码. 有一种解决办法就是使用encodeURIComponent加上修改 Content-Type 为 application/x-www-form-urlencoded" 来把数据统一编码成 url 格式,当然,也可以指定编码,如:"application/x-www-form-urlencode