diff --git a/forge-core/src/main/java/forge/util/ImageUtil.java b/forge-core/src/main/java/forge/util/ImageUtil.java index 17c57d41c2f..b7a065be721 100644 --- a/forge-core/src/main/java/forge/util/ImageUtil.java +++ b/forge-core/src/main/java/forge/util/ImageUtil.java @@ -9,6 +9,8 @@ import forge.item.IPaperCard; import forge.item.PaperCard; import org.apache.commons.lang3.StringUtils; +import java.net.URLEncoder; + public class ImageUtil { public static float getNearestHQSize(float baseSize, float actualSize) { //get nearest power of actualSize to baseSize so that the image renders good @@ -100,7 +102,7 @@ public class ImageUtil { if (includeSet) { String editionAliased = isDownloadUrl ? StaticData.instance().getEditions().getCode2ByCode(edition) : ImageKeys.getSetFolder(edition); - if (editionAliased == "") //FIXME: Custom Cards Workaround + if (editionAliased.isEmpty()) //FIXME: Custom Cards Workaround editionAliased = edition; return TextUtil.concatNoSpace(editionAliased, "/", fname); } else { @@ -164,7 +166,7 @@ public class ImageUtil { public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop, boolean hyphenateAlchemy){ String editionCode; - if ((setCode != null) && (setCode.length() > 0)) + if (setCode != null && !setCode.isEmpty()) editionCode = setCode; else editionCode = cp.getEdition().toLowerCase(); @@ -199,7 +201,17 @@ public class ImageUtil { // Hanweir Garrison EMN already has a appended. cardCollectorNumber += face.equals("back") ? "b" : "a"; } - return String.format("%s/%s/%s?format=image&version=%s%s", editionCode, cardCollectorNumber, + + String cardCollectorNumberEncoded; + try { + cardCollectorNumberEncoded = URLEncoder.encode(cardCollectorNumber, "UTF-8"); + } catch (Exception e) { + // Unlikely, for the possibility that "UTF-8" is not supported. + System.err.println("UTF-8 encoding not supported on this device."); + cardCollectorNumberEncoded = cardCollectorNumber; + } + + return String.format("%s/%s/%s?format=image&version=%s%s", editionCode, cardCollectorNumberEncoded, langCode, versionParam, faceParam); }