Seite 1 von 1

[gelöst] XML UTF-8, XML-Entity und Co.

Verfasst: 15. April 2010 10:51
von ChornHulio
Hallo zusammen,

ich habe folgendes Problem: Ich will (plattformübergreifend) aus einem XML-File UTF-8 Zeichen auslesen und ausgeben. Damit das XML-File funktioniert habe ich das Zeichen als XML-Entity angegeben (theoretisch kann ich aber auch das Zeichen selbst reinkopieren)

Ausschnit aus dem XML-File (ich hab das Caps-Locks auseinandergezogen, damit es nicht "richtig" angezeigt wird):

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?> 
...
<char nr="125" utf="& # 8 6 8 1;"/> <!--Caps Lock Zeichen-->
Auslesen tue ich das ganz normal mit

Code: Alles auswählen

str = n1.toElement().attribute("utf");
Meine Applikation gibt jetzt nur ein ? bzw. ein Quadrat aus. Was mach ich denn falsch? Habe schon ein Haufen gegooglet und Sachen ausprobiert wie umcodierung von dem QString - aber geholfen hat mir noch nichts.

Weiß jemand Rat? Danke für eure Antworten!

edit: Bei manchen System funktioniert es, bei manchen nicht - kA warum - alles WinXP-Systeme

Verfasst: 15. April 2010 11:03
von Christian81
Wenn die verwendete Schriftart für das Zeichen kein Symbol hat kann auch nichts angezeigt werden.

Verfasst: 15. April 2010 11:25
von ChornHulio
Ich hab Helvetica eingestellt - das müsste doch gehen, oder nicht?

edit: Arial und Times New Roman gehen auch nicht

edit2: Es hat außerdem denke ich nichts mit der Schriftart zu tun, da es ja auch "?" ausgibt, wenn ich mit qDebug ausgebe (außer es hängt hier auch an der Schriftart - hier wird Courier verwendet)

Verfasst: 15. April 2010 12:26
von Christian81
Wenn es bei einigen geht und bei anderen nicht kann es eigentlich nur die Schriftart sein. Die 'Zeichentablle' (wenn sie noch so heißt) hilft hier weiter.
Bzgl. qDebug() - das hat nichts zu sagen da die doofe Konsole von Windows nur den aktuellen Locale und kein utf-8 kann, also auch nichts anzeigt was nicht in der aktuellen Locale anzeigbar ist.

Verfasst: 15. April 2010 14:02
von ChornHulio
Danke! Tatsächlich brauch ich nicht die Schriftart Arial o.ä., sonder Arial Unicode (ARIALUNI.TTF) - die ist aber mächtig groß (23MB).

Jetzt bin ich auf DejaVu umgestiegen und das geht auch hervorragend (~600kB)