在android中使用具有特殊字符的链接(例如繁体中文,空白空间)

时间:2014-04-25 06:29:31

标签: android localization encode url-encoding

我正在使用URL中的特殊字符安装

然而,我遇到两个问题

1)空白空间

如果我在网址内有查询

e.g. test.php?test=aaa bbbb cccc

然后查询将不包括bbbb和cccc,我知道我应该将“”替换为%20,但是,如何使用replace(" ","%20"),我怎样才能以更标准的方式进行?

2)url中的繁体中文

我有一个像这样的图片网址:

http://oshc.zizsoft.com/wp-content/uploads/2014/04/1-職安健資訊產品目錄2013-220x300.png

如果我直接传递给android,它会失败。但如果我将链接复制到我的桌面浏览器,它会改为这样,然后我将其粘贴到android上,它可以正常工作

"http://oshc.zizsoft.com/wp-content/uploads/2014/04/1-%E8%81%B7%E5%AE%89%E5%81%A5%E8%B3%87%E8%A8%8A%E7%94%A2%E5%93%81%E7%9B%AE%E9%8C%842013-220x300.png";

我该怎么做才能对此进行编码?

感谢您的帮助

更新

它变为

http%3A%2F%2Foshc.zizsoft.com%2Fwp-content%2Fuploads%2F2013%2F12%2FSQ1-351x300.jpg

我该如何解决?感谢

2 个答案:

答案 0 :(得分:1)

1)尝试修剪网址,它会从网址中删除空格。我想它更有一种解决这个问题的标准方法。

2)这个问题完全归因于编码问题。我们的Android默认编码是cp1252 ...并且这些字符串不会以相同的方式编码,因此当它在代码中使用时会自动更改为其他一些符号。因此,尝试将项目和字符串的编码更改为UTF-8或其他类似的编码。您可以通过更改项目编码 性状>资源>编码

希望我的建议对你有所帮助。

也请尝试此链接 1. Trimming 2. Encoding

答案 1 :(得分:1)

如果您想以编程方式对网址进行编码和解码,请使用Java和Android中提供的URLEncoderURLDecoder类。

// To encode URL 
URLEncoder.encode(url, charset);
// to decode url
URLDecoder.decode(url, charset);