ich habe mich schon durch die Dokumentation und sämtliche Beispiele gewälzt, komme aber einfach auf keinen grünen Zweig mit der Sache.
Ich habe die Vorgabe eines Chinesen, wie ein Text-Output auszusehen hat. Dieser ist versehen mit einer chinesischen Überschrift.
Zurzeit probiere ich es mit den ersten zwei Zeichen "品" und "番".
Der aktuelle Entwicklungsschritt sieht wie folgt aus
Code: Alles auswählen
//QByteArray ba = "品番"; // 品 = E5 93 81 & 番 = E7 95 AA
static const QChar unicode[] = {
0xE59381, 0xE795AA };
int size = sizeof(unicode) / sizeof(QChar); // Every 0x.... is one sign
QString string = QString::fromRawData(unicode, size);
QFile f("c:/test.txt");
if (f.open(QIODevice::WriteOnly | QIODevice::Truncate))
{
QTextStream out(&f);
out.setCodec("UTF-8");
out.setLocale(QLocale(QLocale::Chinese, QLocale::China));
out << string;
}
f.close();
Nicht dass ich einen grundsätzlichen Denkfehler habe, aber so sollte es doch eigentlich funktionieren. Ich beschreibe das Zeichen mit 0xE59381 und erwarte im Output das chinesische Zeichen 品. Doch im Text-Output ist für die zwei Zeichen folgendes zu sehen: E9 8E 81 E9 96 AA, was zwei anderen chinesischen Zeichen entspricht, als gewünscht.
Ich habe nun schon so viel mit Konvertierungen versucht, dass mir schon schlecht wird. Entweder hapert es an dem Grundverständnis oder ich habe es falsch aufgesetzt.
Hoffentlich kann mir jemand weiterhelfen, denn ich finde irgendwie zu keiner brauchbaren Lösung.
Ich arbeite mit Qt 4.7.3, Visual Studio 2008 und Windows XP.
Grüße,
KK