android - 用浏览器代码替换一些特殊字符

标签 android json filenotfoundexception

我在这里面临一个奇怪的情况。

我正在通过 json 解析图片链接并获取 url:

http://developersatwork.com/projects/g4/tools/wp-content/uploads/2015/05/Belbin’s-Team-Roles-100x100.jpg

每当我将其粘贴到浏览器中时,就会显示图像,但每当我将其粘贴到记事本中时,就会显示以下网址:

http://developersatwork.com/projects/g4/tools/wp-content/uploads/2015/05/Belbin%E2%80%99s-Team-Roles-100x100.jpg

您可以将撇号替换为 %E2%80%99 并且 Json 无法检测到 撇号,结果它抛出异常:

06-15 14:01:16.955: W/System.err(10146): java.io.FileNotFoundException: http://developersatwork.com/projects/g4/tools/wp-content/uploads/2015/05/Belbin’s-Team-Roles-100x100.jpg

如何用相应的代码替换这些特殊字符,以便 Json 可以检测到它们?

我尝试了 UTF-8 编码和解码,但它不起作用。请给出一个通用的解决方案,但不是针对特定字符。

另一个:

http://www.tools4management.dreamhosters.com/wp-content/uploads/2015/06/The-POSITIVE-Model-of-Coaching-–-An-8-step-Outline-to-Motivate-Goal-Accomplishment-100x100.jpg

但是当我将链接从浏览器粘贴到记事本时,它显示:

http://www.tools4management.dreamhosters.com/wp-content/uploads/2015/06/The-POSITIVE-Model-of-Coaching-%E2%80%93-An-8-step-Outline-to-Motivate-Goal-Accomplishment-100x100.jpg

解决方案

唯一的解决方法是使用 Webview 而不是 ImageView。

最佳答案

您需要对 url 进行解码。

    url = java.net.URLDecoder.decode(url, "UTF-8"); 

关于android - 用浏览器代码替换一些特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30840787/

相关文章:

java - 如何使用for循环插入多个值

java - 使用 Jackson 和 Json 时出错

android - fileinputstream 抛出 filenotfoundexception?

java FileNotFoundException 不会在同一项目中定位文件

android - 适用于 Android 浏览器的 VLC 插件

android - 对于所有移动设备来说,最好的视频格式是什么

javascript - 使用 jquery 将 CSV 转换为 JSON

java - 使用 FileOutputStream 时访问被拒绝

java - 如何根据用户点击检索数据库值

javascript - 具有多个字段的 jquery ui 自动完成