2011-09-25 8 views
10

Estoy tratando de leer un archivo XML con el siguiente código:leer XML en UTF-8 en 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) } 

Sin embargo, mi archivo está codificado en UTF-8 (caracteres hebreo) y la codificación XML es val encoding = "ISO-8859-1"

¿qué debo hacer?

+0

¿Es la primera línea del archivo XML algo así como ''? –

+0

No - es oshai

+1

Esa 'val encoding' solo se usa para guardar, no para cargar. –

Respuesta

13

Debe utilizar XML.load(reader: java.io.Reader), que le permite especificar la codificación del archivo:


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