pl: Wiki: Fehler auf der Regex-Seite

Beitrag lesen

problematische Seite

Am Ende erreicht man doch aber genau das, was da im Wiki steht/stand, nämlich dass UTF-8 in der Ausgabe landet.

Der Ausgabekanal ist ein Handle, STDOUT. Da gibt es keine Kodierung sondern nur Bytesequenzen. Genauso wie es in Dateien und Dateihandles nur Bytesequenzen gibt. Bytesequenzen kennen keine Kodierung aber Perl kann mit Kodierungen umgehen. Deswegen muss vor der Ausgabe in ein Handle die Kodierung ausgeschaltet werden. Erst ein Gerät, was Bytesequenzen lesbar darstellen soll (Konsole, Browser, Texteditor...) muss die Kodierung wieder kennen.

Perl lädt im Hintergrund die Moduldatei bytes.pm und arbeitet per Default bytesemantisch. So kann man die Bytesemantic mit use bytes und no bytes explizit ein- und wieder ausschalten. Diesen Zusammenhang zu kennen ist wichtig, wenn Operationen mit Zeichenketten vorliegen, also sämtliche Stringoperationen und auch die Anwendung regulärer Ausdrücke.

use utf8;
binmode STDOUT, ":utf8";
print "€€€";

ist unsinnig, weil es unnötig ist die interne Kodierung ein- und wieder auszuschalten wenn das Literal nur ausgegeben werden soll. Außerdem hat use utf8 überhaupt keine Auswirkung auf Bytesequenzen, die NICHT als Literal im Script selbst notiert sind sondern beispielsweise von STDIN oder Sockets oder anderen Handles oder auch über die CGI-Schnittstelle (Serverumgebung) gelesen werden, dafür gibt es Encode.

MfG

7 47

Wiki: Perl-Bereich depubliziert

  1. 0
  2. 0
    1. 1
      1. 0
        1. 1
    2. 0
      1. 0
        1. 2
          1. 0
          2. 0
  3. 0
  4. 0

    Wiki: Fehler auf der Regex-Seite

    1. 2
      1. 0
        1. 1
          1. -3
            1. -1

              Beitragsbewertung

            2. 2
              1. -1
                1. 2
                  1. 0
                    1. 0
                      1. 0
                        1. 0
                          1. 0
                            1. 1
                              1. 0
                            2. 1
                              1. 0
                                1. 0
                              2. 0
                  2. 0
                    1. -1
            3. 0
              1. 0
                1. 0
                  1. 0
          2. -2
        2. 2
          1. 0
    2. 0
      1. 0
        1. 0
          1. 0
            1. 3
  5. 1

    Perl und Unicode