Jens Doose: WebBrowser Control verändert Umlaute: Wie Originalquelltext?

Hallo zusammen,

ich habe eine C++-Applikation, die das Microsoft WebBrowser
Control hostet.
Ueber die m_spMsHtml->write( sfArray ) Methode schreibe ich den
Quelltext eines HTML-Files in das Control und benutze anschliessend
die Editierfaehigkeiten des Controls um den Quelltext zu veraendern.

Danach lese ich den Quelltext wieder aus ueber document.body.OuterHTML.

Das funktioniert auch soweit gut, nur wenn ich Umlaute oder
Sonderzeichen wie griechische Buchstaben verwende, so wirds
problematisch:

Aus
      ä
      ü
      Σ
      α
werden beim write-Kommando automatisch
die entsprechenden Zeichen, also
ä
ü
Σ
α

Ich wuerde aber lieber die HTML-Steuerzeichen verwenden.
Weiss jemand eine Loesung dafuer?

Vielen Dank,

Jens Doose

  1. Moin!

    Aus
          ä
          ü
          Σ
          α
    werden beim write-Kommando automatisch
    die entsprechenden Zeichen, also
    ä
    ü
    Σ
    α

    Das ist im Prinzip aber kein großes Problem. Du mußt dich ohnehin der Problematik stellen, dass du alle Texte mit dem verwendeten Encoding kennzeichnen mußt. Schlauerweise nimmst du dazu etwas, was den gesamten Unicode-Bereich abbilden kann, also vorzugsweise UTF-8, aber auch UTF-16 oder UTF-32.

    Ich wuerde aber lieber die HTML-Steuerzeichen verwenden.

    Warum eigentlich?

    Weiss jemand eine Loesung dafuer?

    Da wird dir kaum was anderes übrig bleiben, als nachfolgend diverse Stringersetzungen durchzuführen. Und zwar zwingend mindestens für alle Zeichen, die in deinem Encoding nicht darstellbar sind (sofern damit nicht der gesamte Unicode-Bereich codiert werden kann), aber natürlich auch alle weiteren Zeichen.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
  2. Hallo

    Du musst dir darüber klar werden, wie eine solche Seite bezüglich der Zeichen funktioniert. Dieses Forum ist in utf-8 codiert und ich kann die Zeichen einfach so reinschreiben, zum Beispiel ein Pfeil nach Links oben ↗. In einem Forum, dass mit iso-8859-1 codiert ist, geht das nicht. Da brauchst du für die Eingabe ↗. Du musst es dann wirklich in den Quelltext des Browsers tippen.

    Dazu musst du verstehen, was ein unicode-Zeichensatz ist http://unicode.org/, wobei der sinnvollste eben utf-8 ist und du musst das Browsercontrol dazu bekommen, in dieser Darstellung zu arbeiten.

    Wie es dann weitergeht, hängt von dem ab, in welcher Richtung du Texte schreiben willst.
    a) besondere Sprachen wie russisch
    b) mathematische Texte ...
    Dazu müsstest du ggf. was sagen.

    Herzliche Grüße
    Wolfgang

    1. Hi,

      zum Beispiel ein Pfeil nach Links oben ↗.

      Betrachtest Du den Pfeil aus dem Inneren der Bildschirmröhre? ;-)

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      O o ostern ...
      Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hallo Andreas!

        zum Beispiel ein Pfeil nach Links oben ↗.

        Betrachtest Du den Pfeil aus dem Inneren der Bildschirmröhre? ;-)

        Wolfgang geht es sicher wie mir: Er hat den Sinn für links- und rechts-Erkennung von seiner Oma geerbt... und jetzt alle im Chor:

        manche meinen
        lechts und rinks
        kann man nicht
        velwechsern.
        werch ein illtum!
        (Ernst Jandl)

        Viele Grüße aus Frankfurt/Main,
        Patrick

        --

        _ - jenseits vom delirium - _
        <hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
        1. und jetzt alle im Chor:

          Ist ja gut, schreibt euch ein paar Gummibärchen gut ...