From 85c9ec890be2f516851cbd0f29fc0146fe4ae52b Mon Sep 17 00:00:00 2001 From: Tomas Slusny Date: Wed, 10 Oct 2018 16:14:57 +0200 Subject: [PATCH] Use UTF-8 instead of ISO 8859-1 when loading/saving config In order to prevent failures on reading/writing incorrectly escaped characters or writing special UTF-8 characters on save as gibberish, explicitly specify UTF-8 encoding when loading and writing properties. Signed-off-by: Tomas Slusny --- .../java/net/runelite/client/config/ConfigManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index be4b980593..8cb35728d0 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -36,9 +36,12 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Proxy; +import java.nio.charset.Charset; import java.time.Instant; import java.util.Arrays; import java.util.Comparator; @@ -179,7 +182,7 @@ public class ConfigManager try (FileInputStream in = new FileInputStream(propertiesFile)) { - properties.load(in); + properties.load(new InputStreamReader(in, Charset.forName("UTF-8"))); } catch (FileNotFoundException ex) { @@ -226,7 +229,7 @@ public class ConfigManager try (FileOutputStream out = new FileOutputStream(propertiesFile)) { - properties.store(out, "RuneLite configuration"); + properties.store(new OutputStreamWriter(out, Charset.forName("UTF-8")), "RuneLite configuration"); } }