Der Martin: Passender Zeichenvorrat erspart das Encoding

Beitrag lesen

Hallo,

Prinzipiell gilt die ungeschriebene Regel: Keine Zeichen oberhalb #127 verwenden und von denen auch nur eine beschränkte Auswahl.

du redest noch von URLs und Dateinamen? Dann stimme ich zu.

Während URLs zwar mit dem Percent-Encoding eine Möglichkeit vorsehen, Zeichen außerhalb dieses Bereichs "sicher" zu übermitteln, scheitert das eventuell an etwas anderem, nämlich an der Zeichencodierung, die dann nicht eindeutig ist.

In Dateinamen sind zwar in manchen Dateisystemen Zeichen außerhalb des ASCII-Bereichs erlaubt, eventuell sogar das ganze Unicode-Spektrum. Aber auch hier gilt: Anwendungen "wissen" nicht unbedingt, in welcher Zeichencodierung das File-API des Betriebssystems die Dateinamen erwartet. In Windows ist das entweder eine landestypische 1-Byte-Codierung (hierzulande meist Windows-1252), wenn man die alten Funktionen verwendet, oder UCS2 (eine Untermenge von UTF-16) bei Verwendung der modernen Funktionen; in Linux ist es häufig UTF-8 (wobei der Linux-Kernel selbst sich nicht um die Zeichencodierung schert). Ich hatte da letztes Jahr eine lange Diskussion vor allem mit Tom, der das Zusammenspiel von PHP unter Windows und anderen Anwendungen aufdröseln wollte, damit aber letztendlich gescheitert ist.

Probleme machen nämlich nicht nur HTML und HTTP, sondern auch das Filesystem des Zielservers und ggf. das des Request-Hosts, sowie das DNS.

Das DNS eigentlich nicht, denn in Hostnamen ist nur eine sehr eingeschränkte Untermenge von ASCII erlaubt. Domainnamen, die scheinbar diesen Rahmen sprengen, werden hinter den Kulissen durch Punycode auf den erlaubten Zeichensatz abgebildet, so dass im DNS meines Wissens nur [a-z0-9.-] auftreten - und der Punkt sogar mit der Sonderbedeutung, Namensteile voneinander zu trennen, so dass er nicht innerhalb eines Namensteils verwendet werden kann.

So long,
 Martin

--
Ich bin 30. Ich demensiere apokalyptisch.
  (Orlando)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
0 46

Codierungsproblem einer URL

Linuchs
  • html
  1. 0
    Der Martin
    1. 0

      danke

      Linuchs
      1. 0
        Gunnar Bittersmann
        1. 0

          Passender Zeichenvorrat erspart das Encoding

          Robert R.
          1. 0
            hotti
          2. 0
            Der Martin
            1. 0
              Gunnar Bittersmann
              1. 0
                Robert R.
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    Robert R.
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        Robert R.
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            Camping_RIDER
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                Camping_RIDER
                      2. 0
                        Camping_RIDER
                        1. 0
                          Camping_RIDER
                          1. 0
                            Gunnar Bittersmann
                            1. 0
                              Camping_RIDER
                              1. 0
                                Robert R.
                                1. 0
                                  Camping_RIDER
                        2. 0
                          Gunnar Bittersmann
                          1. 0
                            Camping_RIDER
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                Camping_RIDER
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Der Martin
                              2. 0
                                Robert R.
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Camping_RIDER
                                    1. 0
                                      dedlfix
                                      1. 0
                                        Robert R.
                                    2. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        Auge
                                    3. 0

                                      (Un-)Kultur von Webseiten

                                      Gunnar Bittersmann
                                      • sonstiges
                                      1. 0
                                        Camping_RIDER
                      3. 0
                        Gunnar Bittersmann
                        1. 0
                          dedlfix
                2. 0
                  dedlfix
          3. 0
            dedlfix
          4. 0
            Robert R.
    2. 0
      Gunnar Bittersmann
      1. 0
        Camping_RIDER
  2. 1
    dedlfix