AndreR: Codierung schlägt fehl

Hallo,
ich möchte gerne auf meiner Seite das Script Fontura einsetzen, dass Worte anhand eines Fonts in Bilder wandelt. Leider geht bei dieser Umwandlung aber die Darstellung der Sonderzeichen noch nicht und ich weiss nicht warum. Ich habe sowohl die inc-Datei als auch mein Steuerscript UTF-8-Codiert, wie es in der Anleitung steht. Jedoch erscheinen statt sonderzeichen nur doppelte Rechtecke.

Fontura ist außerdem in der Lage, automatisch den Text in Fraktur mit allen gängigen Regeln umzustellen. Da die Zuordnung der so erzeugten Sonderzeichen wie die ch-Ligatur oder das ſ ordentlich funktioniert muss wohl beim Includieren etwas schief gehen oder an der Kodierung erwas faul sein.

Hat jemand eine Idee? Der Autor ist leider nicht mehr erreichbar.

Danke schonmal,
André

  1. @@AndreR:

    nuqneH

    Fontura ist außerdem in der Lage, automatisch den Text in Fraktur mit allen gängigen Regeln umzustellen.

    Mit allen? Nein! Ein von unbeugsamen Germanen ersonnenes Wortpaar hört nicht auf, der Automatik Widerstand zu leisten: Wachstube/Wachſtube.

    Eine Automatik (ohne einen Haufen KI) wird schwer erkennen können, ob Wachs-tube oder Wach-ſtube gemeint ist.

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. Mit allen? Nein! Ein von unbeugsamen Germanen ersonnenes Wortpaar hört nicht auf, der Automatik Widerstand zu leisten: Wachstube/Wachſtube.

      Das stimmt natürlich, aber man kann bei Fehlern eine Wortgrenze setzen, also "Wach|stube" für die Wachſtube und "Wachs|tube" für die Wachstube.

      Diese Diskussion löst aber mein Problem leider nicht, dass die Umlaute nicht richtig angezeigt werden.

      André

      1. hi,

        dass die Umlaute nicht richtig angezeigt werden.

        Die Seiten der macher dieses Scriptes  sind auch UTF-8 Kodiert -- hat vielleicht dein Server Probleme damit, dies umzusetzen?

        Liest du die Daten, die du in Bilder umwandeln lässt, aus einer Datenbank aus?

        Wenn du zugriff auf die php.ini hast, kannst du ja mal folgendes probieren:

        php.ini:   „default_charset = "UTF-8"
        .htaccess: „AddDefaultCharset utf-8

        mfg

        1. Hi,

          Die Seiten der macher dieses Scriptes  sind auch UTF-8 Kodiert -- hat vielleicht dein Server Probleme damit, dies umzusetzen?

          kann sein, das ist ein Funpic-Server, den ich nur zu Testzwecken nutze. Ich bin bisher noch nicht dazu gekommen, meinen eigenen Server lokal aufzusetzen. Das sollte ich vielleicht mal tun.

          Liest du die Daten, die du in Bilder umwandeln lässt, aus einer Datenbank aus?

          Bisher nicht.

          Danke für die Hinweise!

          André

  2. Hallo André,

    ich möchte gerne auf meiner Seite das Script Fontura einsetzen, dass Worte anhand eines Fonts in Bilder wandelt.

    für weitere Hilfe wäre es schon schön in das Script Einblick zu bekommen.

    Leider geht bei dieser Umwandlung aber die Darstellung der Sonderzeichen noch nicht und ich weiss nicht warum.

    Hast Du Dir die gewünschte Schriftdatei mal betrachtet bzw. also nachgeprüft, ob sie Definitionen für Deine Sonderzeichen enthält?

    Ich habe sowohl die inc-Datei als auch mein Steuerscript UTF-8-Codiert, wie es in der Anleitung steht. Jedoch erscheinen statt sonderzeichen nur doppelte Rechtecke.

    Wo finde ich diese Anleitung? (Ganz ehrlich; man sollte auf Deine Frage gar nicht antworten, bis Du Deine Selbstverständlichkeiten von alleine erklärst. Versuche Dich doch mal in die Lage Deiner Leser zu versetzten!)

    Fontura ist außerdem in der Lage, automatisch den Text in Fraktur mit allen gängigen Regeln umzustellen. Da die Zuordnung der so erzeugten Sonderzeichen wie die ch-Ligatur oder das ſ ordentlich funktioniert muss wohl beim Includieren etwas schief gehen oder an der Kodierung erwas faul sein.

    Der Inhalt wird also als Grafik in das jeweilige Dokument eingezogen. Das ist absoluter blödsinnig.

    Gruß aus Berlin!
    eddi

    --
    Könnte bitte jemand mal langsam dafür sorgen, dass da draußen nicht dauernd die Filmrolle "Planet der Affen" abgedudelt wird? Danke!
    1. Hallo

      ich möchte gerne auf meiner Seite das Script Fontura einsetzen, dass Worte anhand eines Fonts in Bilder wandelt.

      für weitere Hilfe wäre es schon schön in das Script Einblick zu bekommen.

      Kein Problem: http://www.fontura.de/installieren.htm

      Leider geht bei dieser Umwandlung aber die Darstellung der Sonderzeichen noch nicht und ich weiss nicht warum.

      Hast Du Dir die gewünschte Schriftdatei mal betrachtet bzw. also nachgeprüft, ob sie Definitionen für Deine Sonderzeichen enthält?

      Ich habe sowohl alle mitgelieferten als auch eigene Fonts getestet und bin immer wieder auf das selbe Problem gestoßen. Ob TTF oder OpenType ändert nichts.

      Fontura ist außerdem in der Lage, automatisch den Text in Fraktur mit allen gängigen Regeln umzustellen. Da die Zuordnung der so erzeugten Sonderzeichen wie die ch-Ligatur oder das ſ ordentlich funktioniert muss wohl beim Includieren etwas schief gehen oder an der Kodierung erwas faul sein.

      Der Inhalt wird also als Grafik in das jeweilige Dokument eingezogen. Das ist absoluter blödsinnig.

      Um den Prozess kurz zu beschreiben: Man ruft eine Funktion auf und übergibt dieser einen beliebigen String, z.B. "Heute ist ein schöner Tag". Dieser wird dann automatisch umgewandelt in "Heute i(ſt) ein (ſch)öner Tag"  wobei die Klammern die Ligaturen widerspiegeln, die eine eigene Position im Font haben. Wenn ich diesen String so übergebe bekomme ich statdessen aber "Heute i(ſt) ein (sch)#ner Tag" wobei die Raute diesem Rechteck entspricht.

      André

      1. Re:

        Kein Problem: http://www.fontura.de/installieren.htm

        Das sehe ich mir die Nacht über mal an. Derweil ziehe ich Dir hiermit einen floständig lauffähigen Beispielcode (mit include der entsprechenden Funktionen von fontura aus der Nase!

        Leider geht bei dieser Umwandlung aber die Darstellung der Sonderzeichen noch nicht und ich weiss nicht warum.

        Hast Du Dir die gewünschte Schriftdatei mal betrachtet bzw. also nachgeprüft, ob sie Definitionen für Deine Sonderzeichen enthält?

        Ich habe sowohl alle mitgelieferten als auch eigene Fonts getestet und bin immer wieder auf das selbe Problem gestoßen. Ob TTF oder OpenType ändert nichts.

        "nein, aber..." - aha. Derweil gehe ich dann erstmal einkaufen.

        Gruß aus Berlin!
        eddi

        --
        Könnte bitte jemand mal langsam dafür sorgen, dass da draußen nicht dauernd die Filmrolle "Planet der Affen" abgedudelt wird? Danke!
        1. Das sehe ich mir die Nacht über mal an. Derweil ziehe ich Dir hiermit einen floständig lauffähigen Beispielcode (mit include der entsprechenden Funktionen von fontura aus der Nase!

          Danke der Mühen. Ich habe mal versucht, etwas minimalistisches zu basteln. Beachte auch die Hiweise darunter.

          <?php  
            header('Content-type: text/html; Charset=UTF-8');  
            
            include_once('../fontura/class.font.inc');  
          	  
          	$font = new font('dst-rediviva.otf', '', '', '', TRUE, 'steuersatz-dst-rediviva.inc');  
          	$font->style('12', 'normal', '', TRUE, TRUE);  
          	$font->color('#000', '#FFF', '#000', TRUE);  
          ?>  
            
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
          <html xmlns="http://www.w3.org/1999/xhtml">  
            
          <head>  
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
          </head>  
            
          <body>  
          <p><?php echo $font->text('Dies ist ein Beispieltext. Die Wachs|tube ist eine Tube voller Wachs, die Wach|stube hingegen eine Behausung für Wachleute. Große Mänschen bräuchte das Land, mit Umlauten (äöü, ÄÖÜ) und dem scharfen ß.'); ?></p>  
          </body>  
            
          </html>
          

          Zur Verzeichnissstruktur:

          • fontura (ohne Änderung hochladen)
          • testordner
             + worte (diesen Ordner leer lassen)
             L diesedatei.php

          Bei mir wird folgende Zeichenkette generiert:
          "Dies iſt ein Beiſpieltext. Die Wachstube iſt eine Tube voller Wachs, die Wachſtube hingegen eine Behauſung f□r Wachleute. Gro□□ M□□nſchen br□□uchte das Land, mit Umlauten (□□□, □„Ã-Ü) und dem ſcharfen □Ỹ."

          Ich hoffe, damit kannst du etwas anfangen. Danke schonmal und Grüße aus dem schönen Hohenloher Land,
          André

          1. Re:

            Mein Versuch, dem auf die Schliche zu kommen, wurde dadurch vereitelt, dass der aktuelle snap shott von PHP 5.3.0 sich nicht kompilieren lässt. (Wieder ein bug report... ;(

            "Dies iſt ein Beiſpieltext. Die Wachstube iſt eine Tube voller Wachs, die Wachſtube hingegen eine Behauſung f□r Wachleute. Gro□□ M□□nſchen br□□uchte das Land, mit Umlauten (□□□, □„Ã-Ü) und dem ſcharfen □Ỹ."

            Das lässt sich anhand Deines Beispielcodes reproduzieren.

            Zunächst ist anzumerken, dass man die class.utf8.inc in Zeile 99 um die Definition $utf8=''; erweitern sollte. (Der code ist also auch nicht der wahre Jakob.) Alle Worte werden einzeln als Bilder erstellt. Ich bezweifele, dass der Programmierer für dieses Scripts mal in sich gegangen ist und nachgedacht hat. Ohnehin sollte dieser Schnee eh nur für Überschriften verwendet werden. Dabei ist auf HTTP-Ebene ein Bild (pro Überschrift) ressourcenschonend. Das ganze ist also Das ist absolut blödsinniger Käse.

            Die einstigen Bedenken, die ich bezüglich der nicht vorhandenen Zeichen hatte, haben sich leider auch nicht bewahrheitet. Das Script sollte, nach den Vorstellungen des Programmierers ist das offensichtlich so, sehr wohl für eine Konvertierung sorgen. Tatsächlich tut es das aber nicht. Ich habe an der steuersatz-dst-rediviva.inc mich etwas ausprobiert - ohne Erfolg. So gehe ich davon aus, dass Du, ich oder sonst wer nicht ohne erheblichen Aufwand dahinter kommen werden, warum es zu Fehlern kommt. Tut mir leid.

            Zur Lösung Deines Problem kann ich derzeit nur anraten, vorab die Umlaute in eigener Regie zu konvertieren (str_replace('ä','ae',$text); o. ä.).

            Gruß aus Berlin!
            eddi

            --
            Könnte bitte jemand mal langsam dafür sorgen, dass da draußen nicht dauernd die Filmrolle "Planet der Affen" abgedudelt wird? Danke!
          2. Hi!

            Bei mir wird folgende Zeichenkette generiert:
            "Dies iſt ein Beiſpieltext. Die Wachstube iſt eine Tube voller Wachs, die Wachſtube hingegen eine Behauſung f□r Wachleute. Gro□□ M□□nſchen br□□uchte das Land, mit Umlauten (□□□, □„Ã-Ü) und dem ſcharfen □Ỹ."

            Ich habe es jetzt auch mal probiert und konnte beim besten Willen keine Kästchen erzeugen. Mit anderen Worten: Ich bekam immer einen ordentlichen Text angezeigt, egal ob UTF8 oder ISO-8859-1 vorlag. Das habe ich natürlich geprüft, indem ich vor Zeile 494 in class.font.inc (also vor ImageTTFText()) ein echo urlencode($wort); einfügte. Die URL-kodierten Bytes waren dabei jeweils wie erwartet zu sehen.

            Außerdem muss man beim Test jeweils das Verzeichnis worte leeren, sonst wird daraus eine zwischengespeicherte Version genommen. Das sieht man auch daran, dass die Kontrollausgabe nur jeweils die geänderten Wörter ausgibt.

            Lo!

            1. Hallo

              Außerdem muss man beim Test jeweils das Verzeichnis worte leeren, sonst wird daraus eine zwischengespeicherte Version genommen. Das sieht man auch daran, dass die Kontrollausgabe nur jeweils die geänderten Wörter ausgibt.

              Dank für den Test. Ich glaube langsam echt, dass es an diesem Funpic-Server liegt. Ich muss das mal wo anders testen. Das Wörter-Verzeichnis habe ich natürlich mehrfach geleert.

              André