画像URLに中国語が含まれているためIOS側で表示が異常になる

本来この部分はフロントエンドで処理すべきなのですが、フロントエンドが怠惰すぎるため、URLEncoder.encodeを使ってフロントエンドとバックエンドでトランスコーディングを行うしかありません。
まず理由をお話しますと、IOSとAndroidの開発により、Androidでは中国語のトランスコードが行われるのですが、IOSではトランスコードが行われないため、Android側では写真へのアクセスは正常ですが、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);

ここに画像の説明を挿入

トランスコードされたAndroidも上記のものなので、トランスコードされたURLは正常に表示できますし、元のAndroid端末にも影響はありません。

ファローアップ

このトランスコーディングは完全ではなく、中国語以外の部分もトランスコードされ、リンクが無効になることがオンラインで判明しました。中国語のみがトランスコードされます。メソッド: java:URLEncoder.encode は中国語のみをトランスコードします

おすすめ

転載: blog.csdn.net/RoyRaoHR/article/details/121783783