2011-09-25 10 views
10

Sto cercando di leggere un file di XML con il seguente codice:leggere il codice XML in UTF-8 in scala

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) } 

Tuttavia, il mio file è codificato in UTF-8 (caratteri ebraico) e la codifica XML è val encoding = "ISO-8859-1"

Cosa devo fare?

+0

La prima riga del file XML è qualcosa come ''? –

+0

No - è oshai

+1

Quella 'val encoding' viene utilizzata solo per il salvataggio, non per il caricamento. –

risposta

13

Si dovrebbe usare XML.load(reader: java.io.Reader), che permette di specificare il file di codifica:


XML.load(new java.io.InputStreamReader(new java.io.FileInputStream("cities_hebrew_utf.xml"), "UTF-8"))