From b5938e56092cf3c4ceefdd47ffa5e7b13d788d70 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Sun, 6 Jul 2025 18:17:31 +0200 Subject: [PATCH] Add UrlEncoder for crazy collectorNumber --- forge-core/src/main/java/forge/item/ImageKey.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/forge-core/src/main/java/forge/item/ImageKey.java b/forge-core/src/main/java/forge/item/ImageKey.java index ab62107567b..bdf88e845eb 100644 --- a/forge-core/src/main/java/forge/item/ImageKey.java +++ b/forge-core/src/main/java/forge/item/ImageKey.java @@ -1,6 +1,8 @@ package forge.item; import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -82,8 +84,16 @@ public record ImageKey(String setCode, String name, String collectorNumber, Stri String ext = art.scryfall == "png" ? ".png" : ".jpg"; String filepath = setCode + "/" + collectorNumber + "_" + name + ext; // TODO make scryfall art_crop of split cards separate + String collectorNumberEncoded; + try { + // encode with Charset isn't supported on Android + collectorNumberEncoded = URLEncoder.encode(collectorNumber, "UTF-8"); + } catch (UnsupportedEncodingException e) { + collectorNumberEncoded = collectorNumber; + } + String url = ImageKeys.URL_PIC_SCRYFALL_DOWNLOAD + String.format( - "%s/%s/%s?format=image&version=%s%s", setCode, collectorNumber, langCode, art.scryfall, faceParam + "%s/%s/%s?format=image&version=%s%s", setCode, collectorNumberEncoded, langCode, art.scryfall, faceParam ); return Pair.of(filepath, url); }