Android url中文乱码问题及解决办法

写android的同学知道可以知道 用下面的方法,去get网络信息流

Url url= new Url(string)

HttpURLConnection httpconn = (HttpURLConnection) url.openConnection();

int responseCode = httpconn.getResponseCode();

if (responseCode == HttpURLConnection.HTTP_OK

InputStream is = httpconn.getInputStream();

观察发现,responsecode是404,反正不是200,怎么回事,打开的mp3音乐为什么用url有问题,后来把异常打出来看才知道,因为mp3的请求地址包含中文,而这样解析的时候乱码了,非常讨厌,下面给出解决办法。

http%3A%2F%2Fctimp3.vbox.hf.openstorage.cn%2Fsong20140907_2%2F%E5%A6%82%E6%9E%9C%E9%82%A3%E5%A4%A9%E4%BD%A0%E8%AF%B4%E7%88%B1%E6%88%91-%E8%94%A1%E4%BE%9D%E6%9E%97-%E7%BA%AF%E7%9C%9F%E5%B9%B4%E4%BB%A31999-2001%E5%85%A8%E7%BA%AA%E5%BD%95.mp3

http://ctimp3.vbox.hf.openstorage.cn/song20140907_2/如果那天你说爱我-蔡依林-纯真年代1999-2001全纪录.mp3


上面是没解析的,下面是解析以后的,用下面得的方法

audio_url = URLEncoder.encode(audio_url, "UTF-8");,

默认用utf-8编码一下,就可以得到上方的的地址,解析的话可以用decode,

下面还有很重要的两部,因为这样的url格式服务器是不可能响应的了的,需要将%3A 和 %2F 替换会: 以及 / 这样整个url地址才完整并且复合规范。

audio_url = audio_url.replace("%3A", ":");
audio_url = audio_url.replace("%2F", "/");

就到这吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值