specify utf8 encoding

this should fix the following known bugs:
 - putting a U+2019 in the config causes it to become corrupted and
   ~double in size every launch
 - scripts become assembled incorrectly and the nbsp after your name in
   the chatbox becomes incorrect
 - the feed panel doesn't show emoji
This commit is contained in:
Max Weber
2020-08-24 09:41:54 -06:00
committed by Adam
parent ca2416a838
commit 431e09588b
32 changed files with 117 additions and 70 deletions

View File

@@ -25,6 +25,7 @@
package net.runelite.cache.script.assembler;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import net.runelite.cache.definitions.ScriptDefinition;
import net.runelite.cache.script.Instructions;
import net.runelite.cache.script.disassembler.Disassembler;
@@ -76,7 +77,7 @@ public class AssemblerTest
in = AssemblerTest.class.getResourceAsStream(this.script);
Assert.assertNotNull(in);
String original = new String(IOUtils.toByteArray(in)).replaceAll("\r\n", "\n");
String original = new String(IOUtils.toByteArray(in), StandardCharsets.UTF_8).replaceAll("\r\n", "\n");
logger.info(original);
logger.info("-----------------------");

View File

@@ -27,6 +27,7 @@ package net.runelite.cache.script.disassembler;
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import net.runelite.cache.IndexType;
import net.runelite.cache.StoreLocation;
import net.runelite.cache.definitions.ScriptDefinition;
@@ -78,7 +79,7 @@ public class DisassemblerTest
Disassembler disassembler = new Disassembler();
String out = disassembler.disassemble(script);
Files.write(out.getBytes(), outFile);
Files.write(out.getBytes(StandardCharsets.UTF_8), outFile);
++count;
}

View File

@@ -24,6 +24,7 @@
*/
package net.runelite.cache.util;
import java.nio.charset.StandardCharsets;
import static org.junit.Assert.assertArrayEquals;
import org.junit.Test;
@@ -32,7 +33,7 @@ public class XteaTest
@Test
public void test()
{
byte[] data = "testtesttest1".getBytes();
byte[] data = "testtesttest1".getBytes(StandardCharsets.UTF_8);
int[] key = new int[]
{