2011-09-25 2 views
10

Je suis en train de lire un fichier XML avec le code suivant:lu xml en UTF-8 dans 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) } 

Cependant, mon dossier est codé en UTF-8 (caractères hébreux) et l'encodage XML est val encoding = "ISO-8859-1"

que dois-je faire?

+0

Est la première ligne du fichier XML quelque chose comme ''? –

+0

Non - c'est oshai

+1

Cet 'encodage val' n'est utilisé que pour l'enregistrement, pas pour le chargement. –

Répondre

13

Vous devez utiliser XML.load(reader: java.io.Reader), qui vous permet de spécifier l'encodage du fichier:


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