Я стараюсь читать свойства из файла с умляутов, это мой build.gradle:Gradle использует неправильную кодировку (Latin-1) для файла свойств
task utf8test << {
Properties props = new Properties()
def propFile = new File("my.property")
if (propFile.canRead()) {
props.load(new FileInputStream(propFile))
for (Map.Entry property in props) {
println property.value
}
}
}
Моя недвижимость-файл выглядит следующим образом (UTF-8 закодированы):
challenge: ö
Если я выполнить задачу с: gradle utf8test
результат выглядит
:utf8test
ö
BUILD SUCCESSFUL
Total time: 0.877 secs
«ö» изменяется на «Ã¶», что легко понять. «ö» как шестнадцатеричный c3b6, а c3 в латинском-1 - Ã, а b6 - ¶, но это не то, что я ожидал.
Вопрос: Как я могу настроить Gradle читать в свойствах, как UTF-8 кодируются
Больше информации:
Если я распечатать содержимое propFiles в Gradle с:
println propFile.text
Я получаю «ö» в качестве вывода, поэтому файл читается правильно, а выход закодирован правильно моей оболочкой.
Gradle-демон работает с: -Dfile.encoding = UTF-8
Выполнение Gradle с -Dfile.encoding = UTF-8: gradle utf8test -Dfile.encoding=UTF-8
не помогает, и не export GRADLE_OPTS="-Dfile.encoding=UTF-8"
в Баш, а также не добавляя к systemProp.file.encoding=utf-8
gradle.properties.
Мне не удалось найти страницу документации для класса Properties-Class в градиенте, есть ли опция для настройки кодировки?
Большое спасибо!
Спасибо за этот идеальный ответ! И для того, чтобы связать меня с java-документацией! – Murmel