Ответ 1
Вы должны использовать XML.load(reader: java.io.Reader)
, который позволяет указать кодировку файла:
XML.load(new java.io.InputStreamReader(new java.io.FileInputStream("cities_hebrew_utf.xml"), "UTF-8"))
Я пытаюсь прочитать файл в xml со следующим кодом:
import scala.xml._
object HebrewToEnglishCityTranslator {
val data = XML.loadFile("cities_hebrew_utf.xml");
for(val entry <- data \\ "city") {
val hebrewName = (entry \\ "hebrew_name").text
val englishName = (entry \\ "english_name").text
println(hebrewName + "=" + englishName) }
Однако мой файл закодирован в UTF-8 (ивритские символы), а XML-кодирование - val encoding = "ISO-8859-1"
что мне делать?
Вы должны использовать XML.load(reader: java.io.Reader)
, который позволяет указать кодировку файла:
XML.load(new java.io.InputStreamReader(new java.io.FileInputStream("cities_hebrew_utf.xml"), "UTF-8"))
Используйте конструктор InputStream вместо конструктора String. Хорошее объяснение здесь: Создание правильного XML с кодировкой Java и UTF-8