安卓请求后台中文乱码

在安卓应用开发过程中,遇到后台接收到中文数据出现乱码的问题。问题出现在网络请求时,虽然服务器数据正常,但安卓客户端显示乱码。通过排查服务器设置和编码统一性后,发现需要在客户端对中文进行转码。同时,注意到浏览器请求时无乱码,说明问题可能在于安卓请求的编码处理。解决方案包括在安卓客户端进行转码操作,以及在服务器端的Tomcat中设置URIEncoding,经过调整,中文数据传输恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继续奋斗安卓,已经连续好多天在弄安卓的app了,看着自己一点点地写出了一个app,成就感还是挺大的,虽然和我想象中的样子不太一样,并且由于事情太多,一会忙自己的其他事情,同时这个app的时间太赶,所以无法做得太精细,就马马虎虎一边学一边弄。遇到的问题也都挺多的,从一开始的ui更新、网络请求、控件自定义等等,也渐渐从解决问题中学习到更多安卓的内容。

在网络请求的时候,出现了中文乱码,一开始由于虚拟机无法输入中文,都是使用英文字母测试,所以没有能够一开始就发现这个问题,后来由于一次请求用到了中文才发现在后台收到的内容为乱码,但是请求回来得到的数据却没有任何异常。经过排查,在排除掉服务器设置错误、编码不统一等原因之后,才知道原来需要对中文进行转码。
但是奇怪的是,用浏览器来访问的话是没有乱码的,通过安卓来请求的话则出现了乱码。
解决方法如下:
在客户端,对中文进行转码:

String str = URLEncoder.encode("小明","UTF-8");
URL url = new URL(server+"?name="+str);

而在服务器端的tomcat中设置URIEncoding

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               redirectPort="8443" />

经测试,一切正常,发送到服务器的中文终于正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值