图片url含中文导致IOS端显示异常处理

本来这部分应该由前端处理的,但是前端太懒,只能先后端这边用 URLEncoder.encode进行一个转码。
先说说原因,按IOS和安卓开发的话来讲,就是安卓会对中文进行一个转码,而IOS不会,就导致了图片在安卓端可以正常访问,而在IOS端显示异常。
转码过程如下,因为符号也会被转码。所以需要再次替换

:// 转码后是 %3A%2F%2F
/ 转码后是  %2F
        String url = "https://kos-oss-test.oss-cn-hangzhou.aliyuncs.com/kite/企业微信截图_16387525355876_1638753098297.png";
        String encode = URLEncoder.encode(url,"utf-8");
        String replace = encode.replace("%3A%2F%2F", "://");
        String replace1 = replace.replace("%2F", "/");
        System.out.println(encode);
        System.out.println(replace1);

在这里插入图片描述

转码后的url就能正常显示了,原安卓端不受影响,因为安卓转码后的也是上面这个。

后续

线上发现这个转码并不完善,会对非中文部分也进行转码,导致链接失效,只对中文进行转码方法:
java:URLEncoder.encode只转码中文

猜你喜欢

转载自blog.csdn.net/RoyRaoHR/article/details/121783783