читать XML в UTF-8 в Scala - PullRequest
       0

читать XML в UTF-8 в Scala

10 голосов
/ 25 сентября 2011

Я пытаюсь прочитать файл в 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"

что мне делать?

Ответы [ 2 ]

13 голосов
/ 25 сентября 2011

Вы должны использовать XML.load(reader: java.io.Reader), что позволяет указать кодировку файла:


XML.load(new java.io.InputStreamReader(new java.io.FileInputStream("cities_hebrew_utf.xml"), "UTF-8")) 
3 голосов
/ 25 сентября 2011

Используйте конструктор InputStream вместо конструктора String. Хорошее объяснение XML потоковой чтения и чтения здесь: Создание правильного XML с кодировкой Java и UTF-8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...