具有阿拉伯名称且编码无法打开的图像
images having arabic names with encoding not opening
我正在制作一个 Android 应用程序,我的图像 url 包含阿拉伯字符。
下面是我使用的代码...
Log.e(TAG, "Video Image -- > " + Uri.encode(data.get(position).getPhoto().toString()));
Picasso.with(act).load(Uri.encode(data.get(position).getPhoto().toString()))
.resize(pW, pH)
.centerCrop()
.skipMemoryCache()
.error(R.drawable.img_table_view)
.placeholder(R.drawable.img_table_view)
.into(viewHolder.image);
示例 URL 如下。
http://www.ssss.com/Karikatir/سبسي3ILAWESVVSKNVMWYLLTFWRASZ.jpg
Log输出结果如下
10-19 10:00:08.038 25617-25617/com.sss.app E/VideosAdapter﹕ Video Image -- > http%3A%2F%2Fwww.ssss.com%2FKarikatir%2F3ILAWESVVSKNVMWYLLTFWRASZ.jpg
知道为什么图像在编码 url 后仍未显示吗?
最后下面是我做的...
第 1 步:从 URL
中提取图像名称
String imageName = "http://www.sss.com/test.png";
imageName = imageName.replaceAll("http://www.sss.com/", "");
第 2 步:编码此图像名称而不是完整名称 URL
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName);
Picasso.with(act).load(encodedURL)
.resize(pW, pH)
.centerCrop()
.skipMemoryCache()
.error(R.drawable.img_table_view)
.placeholder(R.drawable.img_table_view)
.into(viewHolder.image);
所以编码 url 将如下所示。
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName);
注: 如果URL中有space,你需要更新代码如下。
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName).replaceAll(" ", "%20");
在编码之前不要用 %20 替换 space,因为它会编码 %20,这将导致不正确的 url。所以用 %20 替换 spaces 将在编码之后。
发布答案以帮助某人,因为我在网上找不到解决方案...
我正在制作一个 Android 应用程序,我的图像 url 包含阿拉伯字符。
下面是我使用的代码...
Log.e(TAG, "Video Image -- > " + Uri.encode(data.get(position).getPhoto().toString()));
Picasso.with(act).load(Uri.encode(data.get(position).getPhoto().toString()))
.resize(pW, pH)
.centerCrop()
.skipMemoryCache()
.error(R.drawable.img_table_view)
.placeholder(R.drawable.img_table_view)
.into(viewHolder.image);
示例 URL 如下。
http://www.ssss.com/Karikatir/سبسي3ILAWESVVSKNVMWYLLTFWRASZ.jpg
Log输出结果如下
10-19 10:00:08.038 25617-25617/com.sss.app E/VideosAdapter﹕ Video Image -- > http%3A%2F%2Fwww.ssss.com%2FKarikatir%2F3ILAWESVVSKNVMWYLLTFWRASZ.jpg
知道为什么图像在编码 url 后仍未显示吗?
最后下面是我做的...
第 1 步:从 URL
中提取图像名称String imageName = "http://www.sss.com/test.png";
imageName = imageName.replaceAll("http://www.sss.com/", "");
第 2 步:编码此图像名称而不是完整名称 URL
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName);
Picasso.with(act).load(encodedURL)
.resize(pW, pH)
.centerCrop()
.skipMemoryCache()
.error(R.drawable.img_table_view)
.placeholder(R.drawable.img_table_view)
.into(viewHolder.image);
所以编码 url 将如下所示。
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName);
注: 如果URL中有space,你需要更新代码如下。
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName).replaceAll(" ", "%20");
在编码之前不要用 %20 替换 space,因为它会编码 %20,这将导致不正确的 url。所以用 %20 替换 spaces 将在编码之后。
发布答案以帮助某人,因为我在网上找不到解决方案...