# XML mit russischem Inhalt einlesen



## Javaholic (7. Jun 2012)

Hi,  

ich hab gegoogelt, aber die Ansätze mein Problem zu lösen haben nicht wirklich geholfen. Und hier hab ich auch nichts passendes gefunden.

Folgendes Problem:
Meine XML sieht in etwas so aus: (Auschnitt)
[XML]<?xml version="1.0" encoding="UTF-8" ?>
<items>
  <playlist_name>-= ALL-RUSS-TV =-</playlist_name> 
<channel><title><![CDATA[ ОРТ Первый канал]]></title>
<logo_30x30>http://samsungtv.lima-city.de/img/frame_1tv.png</logo_30x30>
<description><![CDATA[104]]></description>
<stream_url><![CDATA[http://********]]></stream_url>
<category_id>1</category_id>
</channel>[/XML]

Im *Tag: title* steht der russische Text. 
Nun versuche ich die XML mittels DOM einzulesen und das sieht so aus.

```
public XMLCreator(String file) throws ParserConfigurationException,
			SAXException, IOException {
		this.factory = DocumentBuilderFactory.newInstance();
		this.builder = factory.newDocumentBuilder();
		InputSource is = new InputSource(new InputStreamReader(new FileInputStream(file), "UTF-8"));
		this.document = builder.parse(is);
//		this.document = builder.parse(new File(file));
		this.rootNode = document.getDocumentElement();
```
Desweiteren habe ich eine Klasse, die so einen "Channel" beschreibt. Ich lesen dann die ganzen Tags aus und erzeuge Java-Objekte. 
*Das Problem* ist, dass der russische Text dann wie folgt angezeigt wird:
Beispiel: toString eines Channel-Objektes:
Channel [title=[B]??? ?????? ?????[/B], logo=http://samsungtv.lima-city.de/img/frame_1tv.png, description=104, stream_url=http://*****, category_id=1]

Anstelle des Textes stehen da jetzt Fragezeichen. In der XML wird der Text richtig angezeigt.

Wie kann ich das Problem lösen?


----------



## SlaterB (7. Jun 2012)

falls du den Code nicht nur kopiert hast, achtest du anscheinend auf UTF-8, also sind dir Zeichensätze usw. nicht unbekannt,
dann solltest du auch wissen, dass eine nicht näher spezifizierte Anzeige nicht zwingend auf einen Fehler im Programm zurückzuführen ist, vielleicht ist schlicht die Ausgabe beschränkt

fange mit

```
public class Test4
{
    public static void main(String[] args)
    {
        String st = "Первый канал";
        System.out.println(st);
    }
}
```
an, bzw. was immer du unter Ausgabe verstehst

lies die XML-Datei direkt in Java ein, sind die Strings dann lesbar?
vielleicht sind doch andere CharSets geeigneter, falls du da mit Kenntnis wählen kannst

auch interessant ist eine gewisse Untersuchung der Strings, gib die einzelnen chars als int aus,
vergleiche sie mit direkter Eingabe wie oben angegeben


----------



## Javaholic (7. Jun 2012)

Hab jetzt mal ein UI drübergelegt, in der UI werden die Strings richtig angezeigt, also liegts einfach an der Konsole.

Ein *Problem* besteht jedoch immer noch:
Wenn ich die Strings wieder in eine Datei schreibe, stehen da nur "??????". Das heißt ich muss dem FileWriter oder OutputStream beibringen, dass er die zu scheibende Datei im "UTF-8" abspeichert.

Wie mache ich das?


----------



## SlaterB (7. Jun 2012)

analog zum InputStreamReader? den symmetrisch passenden Aufbau wählen


----------



## Javaholic (7. Jun 2012)

SlaterB hat gesagt.:


> analog zum InputStreamReader?



ok, wenns genauso geht dann ist es gut  
Werde dann noch berichten obs geklappt hat 

Danke für die Hilfe


----------

