peegee: Chinesische Zeichen in HTML-Datei ausgeben

Hallo,

ich habe von einem chinesischen Text jedes Zeichen als Unicode vorliegen:

联系方式

Ich möchte den Text jetzt allerdings nicht mittels den einzelnen Unicodes ausgeben, sondern bereits die "zurückgewandelten" Zeichen:
联系方式

Ich dachte eigentlich, die Anforderung würde sich leicht mit der Funktion html_entity_decode lösen lassen.
Doch egal wie ich dich Funktion auch einsetze, es wir immer nur der Unicode ausgegeben.

Wahrscheinlich steh ich nur auf der Leiter?!...Vielleicht kann mir ja jemand herunter helfen... ;)

lg
peegee

  1. Hi,

    ich habe von einem chinesischen Text jedes Zeichen als Unicode vorliegen:
    联系方式

    das könnte ebenso Unicode wie ASCII sein - wenn schon Unicode (UTF-8 oder UTF-16), dann schreib die Zeichen doch im Klartext rein.

    Ich möchte den Text jetzt allerdings nicht mittels den einzelnen Unicodes ausgeben, sondern bereits die "zurückgewandelten" Zeichen:
    联系方式

    Ja und?

    Ich dachte eigentlich, die Anforderung würde sich leicht mit der Funktion html_entity_decode lösen lassen.

    Warum? Wie der Name schon vermuten lässt, wandelt diese Funktion nur Entity-Referenzen, also benannte Zeichen, in ihre Klartext-Darstellung um. Aber nicht sämtliche numerischen Referenzen.

    Doch egal wie ich dich Funktion auch einsetze, es wir immer nur der Unicode ausgegeben.

    Hä?

    So long,
     Martin

    --
    Chef zum Bewerber: Es gibt zwei Dinge, auf die ich allergrößten Wert lege. Das eine ist Sauberkeit! Haben Sie übrigens die Schuhe auf der Matte abgetreten? - Ja, selbstverständlich. - Gut. Das andere ist uneingeschränkte Ehrlichkeit. Übrigens, draußen liegt gar keine Fußmatte.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Warum? Wie der Name schon vermuten lässt, wandelt diese Funktion nur Entity-Referenzen, also benannte Zeichen, in ihre Klartext-Darstellung um. Aber nicht sämtliche numerischen Referenzen.

      Wenn man die Kommentare aufmerksam liest, findet man die eine oder andere Funktion, die hier abhilft schafft.

      1. Wenn man die Kommentare aufmerksam liest, findet man die eine oder andere Funktion, die hier abhilft schafft.

        ok, ich steh scheinbar wirklich auf der leitung.
        wenn ihr mir jetzt noch einen tipp geben könnt wie ich die "numerischen Referenzen" in die "Klartextdarstellung" umwandeln kann, wäre ich euch schon sehr dankbar :)

        1. Wenn man die Kommentare aufmerksam liest, findet man die eine oder andere Funktion, die hier abhilft schafft.

          ok, ich steh scheinbar wirklich auf der leitung.
          wenn ihr mir jetzt noch einen tipp geben könnt wie ich die "numerischen Referenzen" in die "Klartextdarstellung" umwandeln kann, wäre ich euch schon sehr dankbar :)

          Example 1 ansehen und dann einen UTF-8-tauglichen Ersatz für chr() suchen sollte eigentlich funktionieren.

          Die Dokumentationsseite nach "chinese" zu durchsuchen liefert dir _sofort_ ein entsprechendes Ergebnis - du bist nicht der erste, der dieses Problem hat.

          1. Hi!

            Wenn man die Kommentare aufmerksam liest, findet man die eine oder andere Funktion, die hier abhilft schafft.
            wenn ihr mir jetzt noch einen tipp geben könnt wie ich die "numerischen Referenzen" in die "Klartextdarstellung" umwandeln kann, wäre ich euch schon sehr dankbar :)
            Example 1 ansehen und dann einen UTF-8-tauglichen Ersatz für chr() suchen sollte eigentlich funktionieren.

            Einfacher ist es, den dritten Parameter zu versorgen. Der Default-Wert ist da ISO-8859-1, und damit kann man keine chinesischen Zeichen darstellen, weswegen für diese Zeichen die NCR-Darstellung bestehen bleibt. 'utf-8' und alles wird gut.

            Die Dokumentationsseite nach "chinese" zu durchsuchen liefert dir _sofort_ ein entsprechendes Ergebnis - du bist nicht der erste, der dieses Problem hat.

            Damit treffe ich nur die proprietären Kodierungsnamen.

            Lo!

            1. Einfacher ist es, den dritten Parameter zu versorgen. Der Default-Wert ist da ISO-8859-1, und damit kann man keine chinesischen Zeichen darstellen, weswegen für diese Zeichen die NCR-Darstellung bestehen bleibt. 'utf-8' und alles wird gut.

              Ja, stimmt.
              Komischerweise hab ich das gestern schon unzählige Male probiert und es hat sich nie etwas geändert.
              Und heute funktionierts plötzlich. Naja, immerhin...

              Danke, für eure Mühe.

  2. Hi!

    Ich dachte eigentlich, die Anforderung würde sich leicht mit der Funktion html_entity_decode lösen lassen.
    Doch egal wie ich dich Funktion auch einsetze, es wir immer nur der Unicode ausgegeben.

    Du meinst, es kommen NCRs raus. Die Zahl entspricht zwar dem Unicode-Codepoint, aber die Schreibweise &xxx; ist etwas HTML/XML/SGML/wasweißich-eigenes.

    Bei mir kommen auch NCRs raus, wenn ich keine Angaben zur gewünschten Kodierung mache. Versorge ich den dritten Parameter der Funktion mit 'utf-8', dann bekomme ich die Zeichen in UTF-8-Kodierung.

    Lo!