GNOME XML encoding Chinesisch und Koreanisch



  • Hallo,
    ich habe folgendes Problem. Ich muss chinesische und Koreanische Schriftszeichen nach XML encoden. Gnome bietet standards an wie UTF-8ToIso...
    usw.
    Wie kann ich aber so was machen wie EUC-KRtoIso... bzw. EUC-CNtoIso... ??? 😕
    Ich habe keine Ahnung wie ich da vorzugehen habe. Ist mein erstes Projekt mit XML.
    Kann mir jemand da weiterhelfen? Mit Beispielen oder ähnliches ?



  • Standard-Zeichensatz in XML ist UTF-8, du brauchst die Zeichen also nicht kodieren.



  • Hallo,

    ich habe ein programm das mir Chinesische bzw. Koreanische schriften bringt. Diese muss ich nun in ein XML File schreiben. Bei Sonderzeichen und "äöü"´s musste ich auch konvertieren. Wenn nun ein Chinesischer oder Koreanischer Schriftsatz kommt muss ich das doch auch tun, oder ???



  • Nein. Vorausgesetzt, du codierst dein XML-Dokument als Unicode; und da ist der Standard für XML-Dokumente UTF-8. Speicher deine Datei einfach mit den entsprechenden Zeichen UTF-8 kodiert, das müsste reichen.

    Expliziter könntest du dem Parser auch noch mitteilen, welchen Zeichensatz du verwendest (wenn du zum Bsp. UTF-16 benutzen willst).

    Im Unicode musst du übrigens auch unsere Umlaute nicht kodieren, kannst also einfach "äüöaß2êî..." schreiben. Das einzige, was du nach wie vor kodieren musst, sind Steuerzeichen von XML (z.B. das &-Zeichen).

    Der einzige Nachteil von Unicode ist, dass z.B. PHP damit (noch) nicht wirklich klar kommt.



  • Hallo,
    ich habe nun noch einiges herausgefunden. Ich muss die iconv.dll verwenden.
    Habe ich nun eingebaut, und lässt sich auch compilieren aber nicht linken. Was fehlt mir ?

    So habe ich es gemacht.

    #include <libxml/encoding.h> !Dies beinhaltet die inconv.h

    #define MY_ENCODING_EUC_CN "EUC-CN"
    #define MY_ENCODING_UTF8 "UTF-8"

    iconv_t cd;
    char stmrcd[512];
    char dbrcd[512];
    char *ibuf, *obuf;
    size_t ilen, olen;
    char wert[512];

    LoadLibrary("iconv.dll");

    cd = iconv_open( MY_ENCODING_UTF8, MY_ENCODING_EUC_CN );
    obuf = &stmrcd[0];
    ilen = sprintf(wert, "%-s\0", (void*)&(attr_liste[i].wert));
    ibuf = &wert[0];
    olen = ilen;
    iconv (cd, &ibuf, &ilen, &obuf, &olen);

    Ich habe natürlich nur gewisse Teile rauskopiert. Kann mir jemand sagen warum ich beim linken diese Fehler bekomme. 😕
    [cc] zv_attr.obj : error LNK2001: Nichtaufgeloestes externes Symbol _iconv
    [cc] zv_attr.obj : error LNK2001: Nichtaufgeloestes externes Symbol _iconv_open
    [cc] ina_applikation.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise



  • Hallo,
    kann mir keiner helfen? Ist ziemlich dringend für mich. 😮



  • Ich habe davon ja überhaupt keine Ahnung, aber verwendest Du die DLL auch sicher richtig?

    Übrigens wäre es klüger gewesen, nicht im hierfür völlig ungeeigneten Webzeugs-Forum nachzufragen, das begünstigt Antworten nicht unbedingt.


Anmelden zum Antworten