glupto: Türkische Sonderzeichen ausgeben

Ich wil mit PHP auf meiner Seite einen türkischen Satz ausgeben, wie "maskiere" oder nichtmaskiere ich die Sonderzeichen. Ich habe es so versucht, was aber nicht gelang:

echo " Bu internet sayfas\ına \şu anda ula\şilam\ıyor";

echo " Bu internet sayfasına şu anda ulaşilamıyor";

Die Sonderzeichen sind &#305 und &#351. Ich bekomme einen PHP-Fehler.

Gruß
glupto

  1. Ich wil mit PHP auf meiner Seite einen türkischen Satz ausgeben, wie "maskiere" oder nichtmaskiere ich die Sonderzeichen.

    Garnicht - du versuchst hier HTML mit PHP auszugeben - im Kontext von PHP ist das eine Zeichenkette wie jede andere auch

    echo " Bu internet sayfas\ına \şu anda ula\şilam\ıyor";

    & ist in Double-Quoted-Strings keine gültige escape-sequenz

    echo " Bu internet sayfasına şu anda ulaşilamıyor";

    Ich bekomme einen PHP-Fehler.

    Welchen?

    Dein Fehler liegt in deinem ersten Codebeispiel daran, dass du einen Kontextwechsel nicht richtig behandelst (in diesem Fall nämlich garnicht).

    http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

    Wo der Fehler im zweiten Beispiel steckt, sehe ich grade nicht.

    Dein eigentlicher Fehler ist aber vermutlich, dass du nichts von Zeichenkodierung verstehst - was spricht gegen folgendes:
    echo "Bu internet sayfasına şu anda ulaşilamıyor";

    Die Zeichen sind zeichen wie alle anderen auch und in UTF-8 problemlos abbildbar ohne dass man sie in HTML irgendwie maskieren müsste - man muss nur konsequent mit UTF-8 arbeiten.

    http://wiki.selfhtml.org/wiki/Doku:Grundlagen/Zeichenkodierung_und_geschriebene_Sprache

    1. Ja, danke, der eigentliche Fehler lag auch darin, dass ich eine geschweifte Klammer gelöscht hatte. Dennoch danke natürlich! Habe da zu kraus gedacht.

  2. Hallo,

    Ich wil mit PHP auf meiner Seite einen türkischen Satz ausgeben, wie "maskiere" oder nichtmaskiere ich die Sonderzeichen.

    im besten Fall gar nicht. Wähle eine geeignete Zeichencodierung, dann kannst du diese Zeichen einfach im Klartext notieren. Da bietet sich eigentlich UTF-8 an.

    echo " Bu internet sayfas\ına \şu anda ula\şilam\ıyor";

    Für welchen Kontext soll denn die Ausgabe sein? Für HTML? Und warum maskierst du das '&' noch mit einem Backslash?
    Nein, mach es dir nicht unnötig schwer:

    echo " Bu internet sayfasına şu anda ulaşilamıyor";

    echo " Bu internet sayfasına şu anda ulaşilamıyor";
    Die Sonderzeichen sind &#305 und &#351. Ich bekomme einen PHP-Fehler.

    Dann verrate uns bloß nicht, was für einen. An der echo-Anweisung liegt's jedenfalls nicht, denn PHP kümmert sich nicht um den Inhalt von Strings - ausgenommen einige Escape-Sequenzen, die mit einem Backslash beginnen, und Variablen-Ersetzung, die mit einem Dollarzeichen eingeleitet wird.

    Übrigens: 'ı' und 'ş' sind keine Sonderzeichen. Es sind ganz normale Buchstaben. Nur halt keine, die im Englischen oder im Deutschen benutzt werden.

    Ciao,
     Martin

    --
    Lieber mit Betty im Wald
    als mit Waldi im Bett.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(