AxasBraxas: PHP Dateien html codiert nach UTF

Hallo Leute,

ich habe für eine PHP Anwendung, welches ein Sprachfile enthält, wo die
Übersetzung html codiert drin steht, was aber dazu führt, das gerade die
Sonderzeichen in der Anwendung als solches fehlerhaft mir angezeigt werden.

Nun meine Frage, gibts unter Linux (kubuntu) eine Möglichkeit oder ein Tool mit dem ich PHP Dateien mit dem Format html codiert auf einfache Weise mal eben nach UTF konvertieren kann? Oder wie kann ich sie nach UTF bringen? kubuntu arbeitet ja soweit ich weiss mit UTF Zeichencodierung.

Besten Dank vorab.

Viele Grüße

Sascha

  1. Tach.

    Nun meine Frage, gibts unter Linux (kubuntu) eine Möglichkeit oder ein Tool mit dem ich PHP Dateien mit dem Format html codiert auf einfache Weise mal eben nach UTF konvertieren kann? Oder wie kann ich sie nach UTF bringen? kubuntu arbeitet ja soweit ich weiss mit UTF Zeichencodierung.

    Wenn Du eh mit PHP arbeitest, benutze doch html_entity_decode().

    --
    Wenn es schwingt, ist es ein Filter – Oszillatoren würden so etwas nie tun.
    1. Hallo

      Tach.

      Nun meine Frage, gibts unter Linux (kubuntu) eine Möglichkeit oder ein Tool mit dem ich PHP Dateien mit dem Format html codiert auf einfache Weise mal eben nach UTF konvertieren kann? Oder wie kann ich sie nach UTF bringen? kubuntu arbeitet ja soweit ich weiss mit UTF Zeichencodierung.

      Wenn Du eh mit PHP arbeitest, benutze doch html_entity_decode().

      Wenn er sagt, dass die Umlaute falsch ausgegeben werden, sollten nicht die HTML-Entities schuld sein. Die werden nur aus "ungefährlichen" Zeichen gebaut.

      @AxasBraxas: Benutze einen Editor, in dem man den Charset explizit angeen kann. Nach der Umstellung sollten deine Umlaute im Quelltext anders dargestellt werden, es sollte also händische Nacharbeit anfallen. Nach dem Speichern liegen die Dateien aber mit dem gewünschten Charset vor. Jetzt liegt es nur noch am Server, ob er sie auch richtig ausliefert.

      Tschö, Auge

      --
      Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
      Terry Pratchett, "Wachen! Wachen!"
      Veranstaltungsdatenbank Vdb 0.3
      1. Tach.

        Wenn er sagt, dass die Umlaute falsch ausgegeben werden, sollten nicht die HTML-Entities schuld sein. Die werden nur aus "ungefährlichen" Zeichen gebaut.

        Das habe ich einfach anders verstanden als Du. Für mich klang "fehlerhaft" wie "die Entities sind an dieser Stelle nicht gewünscht".

        --
        Wenn es schwingt, ist es ein Filter – Oszillatoren würden so etwas nie tun.
        1. Hallo,

          Tach.

          Wenn er sagt, dass die Umlaute falsch ausgegeben werden, sollten nicht die HTML-Entities schuld sein. Die werden nur aus "ungefährlichen" Zeichen gebaut.

          Das habe ich einfach anders verstanden als Du. Für mich klang "fehlerhaft" wie "die Entities sind an dieser Stelle nicht gewünscht".

          also zur Aufklärung was ich mit fehlerhaft meine mal ein Beispiel:

          In der Sprachdatei steht z.B. das Wort "für" so drin "für" ...

          ... rufe ich die Anwendung auf, wird mir "für" angezeigt - aber ich möchte, das es dort für den Laien eben besser lesbarer dagestellt wird, sprich als "für" ...

          ... hoffe das war verständlich um was es mir da gerade geht.

          Viele Grüße

          Sascha

      2. Hallo,

        Nun meine Frage, gibts unter Linux (kubuntu) eine Möglichkeit oder ein Tool mit dem ich PHP Dateien mit dem Format html codiert auf einfache Weise mal eben nach UTF konvertieren kann? Oder wie kann ich sie nach UTF bringen? kubuntu arbeitet ja soweit ich weiss mit UTF Zeichencodierung.

        Wenn Du eh mit PHP arbeitest, benutze doch html_entity_decode().

        Wenn er sagt, dass die Umlaute falsch ausgegeben werden, sollten nicht die HTML-Entities schuld sein. Die werden nur aus "ungefährlichen" Zeichen gebaut.

        @AxasBraxas: Benutze einen Editor, in dem man den Charset explizit angeen kann. Nach der Umstellung sollten deine Umlaute im Quelltext anders dargestellt werden, es sollte also händische Nacharbeit anfallen. Nach dem Speichern liegen die Dateien aber mit dem gewünschten Charset vor. Jetzt liegt es nur noch am Server, ob er sie auch richtig ausliefert.

        ... ich meinem Editor "bluefish" gibts unter Einstellungen => Datei die Option Encodierung und die steht auf "UFT" nehme mal an das wird das sein, damit der mir die Datei in UTF speichert!?

        Also habe ich das richtig verstanden, ich speicher die Datei neu ab mit der Codierung für UTF und muß dann alles was die Umlaute geht z.B. das Wort "für" steht momentan so drin "für" - dann in der neu gespeicherten Datei muß ich alle Stellen manuell umändern von "für" in "für" und dann sollte das klappen? Oder hab ich da was falsch verstanden?

        Besten Dank vorab.

        Viele Grüße

        Sascha

        1. Hallo

          @AxasBraxas: Benutze einen Editor, in dem man den Charset explizit angeen kann. Nach der Umstellung sollten deine Umlaute im Quelltext anders dargestellt werden, es sollte also händische Nacharbeit anfallen. Nach dem Speichern liegen die Dateien aber mit dem gewünschten Charset vor. Jetzt liegt es nur noch am Server, ob er sie auch richtig ausliefert.

          ... ich meinem Editor "bluefish" gibts unter Einstellungen => Datei die Option Encodierung und die steht auf "UFT" nehme mal an das wird das sein, damit der mir die Datei in UTF speichert!?

          Ja <nachguck />, das ist es. Mit dieser Einstellung werden alle Dateien standardmäßig als UTF-8 gespeichert.

          Also habe ich das richtig verstanden, ich speicher die Datei neu ab mit der Codierung für UTF und muß dann alles was die Umlaute geht z.B. das Wort "für" steht momentan so drin "f&uuml;r" - dann in der neu gespeicherten Datei muß ich alle Stellen manuell umändern von "f&uuml;r" in "für" und dann sollte das klappen? Oder hab ich da was falsch verstanden?

          Bis auf das "muss" hast du nichts falsch verstanden. Ein HTML-Entity wird in jeder Codierung richtig ausgegeben, solange 1. auf dem System des Benutzers ein entsprechendes Zeichen da ist (hat der Benutzer keine Schriftart mit z.B. einem ü, kann auch keins ausgegeben werden, Entity hin, Entity her) und 2. nicht anderweitig in den Strings herumgefuhrwerkt wird.

          Womit wir bei deinem anderen Posting wären.

          In der Sprachdatei steht z.B. das Wort "für" so drin "f&uuml;r" ...

          ... rufe ich die Anwendung auf, wird mir "f&uuml;r" angezeigt - aber ich möchte, das es dort für den Laien eben besser lesbarer dagestellt wird, sprich als "für" ...

          In der Datei steht "f&uuml;r" drin, bei der Ausgabe wird auch "f&uuml;r" anstatt "für" angezeigt.

          Lässt du etwa htmlentities über die Strings laufen? Das macht aus dem Ampersand zur Einleitung der Entity auch eine Entity. Im Quelltext der Seite müsste also "f&amp;uuml;r" drinnen stehen. Benutze stattdessen die Funktion htmlspecialchars.

          Davon abgesehen solltest du dennoch auf UTF-8 umsteigen. Das vereinfacht den Umgang mit Sonderzeichen im lateinischen Bereich (z.B. Umlaute, skandinavische "Umlaute") wie auch mit nichtlateinischen Systemen. Die sind, bis hin zum klingonischen, alle *in _einem_ Zeichensatz* drin.

          Tschö, Auge

          --
          Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
          Terry Pratchett, "Wachen! Wachen!"
          Veranstaltungsdatenbank Vdb 0.3