diff --git a/querydsl-libraries/querydsl-sql/src/main/java/com/querydsl/sql/Keywords.java b/querydsl-libraries/querydsl-sql/src/main/java/com/querydsl/sql/Keywords.java index 1b9232219b..0dc85eb70d 100644 --- a/querydsl-libraries/querydsl-sql/src/main/java/com/querydsl/sql/Keywords.java +++ b/querydsl-libraries/querydsl-sql/src/main/java/com/querydsl/sql/Keywords.java @@ -28,7 +28,9 @@ private Keywords() {} private static Set readLines(String path) { try (var bufferedReader = new BufferedReader( - new InputStreamReader(Keywords.class.getResourceAsStream("/keywords/" + path))); ) { + new InputStreamReader( + Keywords.class.getResourceAsStream("/keywords/" + path), + java.nio.charset.StandardCharsets.UTF_8)); ) { return bufferedReader .lines() .filter(line -> !line.isEmpty() && !line.startsWith("#")) diff --git a/querydsl-libraries/querydsl-sql/src/test/java/com/querydsl/sql/KeywordsEncodingTest.java b/querydsl-libraries/querydsl-sql/src/test/java/com/querydsl/sql/KeywordsEncodingTest.java new file mode 100644 index 0000000000..0c5c30411f --- /dev/null +++ b/querydsl-libraries/querydsl-sql/src/test/java/com/querydsl/sql/KeywordsEncodingTest.java @@ -0,0 +1,19 @@ +package com.querydsl.sql; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.lang.reflect.Method; +import java.util.Set; +import org.junit.Test; + +public class KeywordsEncodingTest { + + @SuppressWarnings("unchecked") + @Test + public void readLines_usesUtf8() throws Exception { + Method m = Keywords.class.getDeclaredMethod("readLines", String.class); + m.setAccessible(true); + Set lines = (Set) m.invoke(null, "encoding-test"); + assertThat(lines).containsExactly("SELECT", "ÄÖÜ"); + } +} \ No newline at end of file diff --git a/querydsl-libraries/querydsl-sql/src/test/resources/keywords/encoding-test b/querydsl-libraries/querydsl-sql/src/test/resources/keywords/encoding-test new file mode 100644 index 0000000000..c23aa955ea --- /dev/null +++ b/querydsl-libraries/querydsl-sql/src/test/resources/keywords/encoding-test @@ -0,0 +1,2 @@ +SELECT +ÄÖÜ