Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
dev:all:examples:gtk-charset [26.06.2018 22:50] – angelegt Manuela v.d.Decken | dev:all:examples:gtk-charset [14.04.2023 15:33] (aktuell) – [UTF8mb4] Manuela v.d.Decken | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
Der ASCII-Standard basiert auf einem 7-Bit Code und definiert 128 Zeichen, bestehend aus 33 nicht druckbaren sowie 95 druckbaren Zeichen.\\ | Der ASCII-Standard basiert auf einem 7-Bit Code und definiert 128 Zeichen, bestehend aus 33 nicht druckbaren sowie 95 druckbaren Zeichen.\\ | ||
Die druckbaren Zeichen umfassen das lateinische Alphabet in Groß- und Kleinschreibung, | Die druckbaren Zeichen umfassen das lateinische Alphabet in Groß- und Kleinschreibung, | ||
- | Fast alle später definierten Standards basieren noch heute auf diesem 7-Bit ASCII-Code. E-Mails werden z.B. grundsätzlich als 7-Bit Code übertragen. | + | Fast alle später definierten Standards basieren noch heute, 60 Jahre später, |
Mit der fortschreitenden Internationalisierung genügten die verfügbaren 95 Zeichen nicht mehr. Auf Grund dessen wurde der Code um 1 Bit auf 8-Bit erweitert. Das bedeutete, dass 128 zusätzliche Zeichen verfügbar waren. Um jetzt den Unterschiedlichsten Sprachen und Schriften gerecht zu werden, wurde für jede Sprache/ | Mit der fortschreitenden Internationalisierung genügten die verfügbaren 95 Zeichen nicht mehr. Auf Grund dessen wurde der Code um 1 Bit auf 8-Bit erweitert. Das bedeutete, dass 128 zusätzliche Zeichen verfügbar waren. Um jetzt den Unterschiedlichsten Sprachen und Schriften gerecht zu werden, wurde für jede Sprache/ | ||
==== Unicode / UTF ==== | ==== Unicode / UTF ==== | ||
Zeile 23: | Zeile 23: | ||
Alles in allem: Eine saubere, einfache Sache. Wenn, ja wenn da nicht die ganzen Programmierer mit ihren Werkzeugen wären!!! | Alles in allem: Eine saubere, einfache Sache. Wenn, ja wenn da nicht die ganzen Programmierer mit ihren Werkzeugen wären!!! | ||
Denn diese (also die Werkzeuge) stören sich gewaltig an den ' | Denn diese (also die Werkzeuge) stören sich gewaltig an den ' | ||
- | Die grundlegende Tätigkeit eines Webservers ist es, aufgerufene Dateien auf der Festplatte zu finden, einzulesen und 1:1 direkt wieder auszugeben. Bestes Beispiel sind hierfür die *.html oder *.txt Dateien. Enthält z.B. eine *html Datei jedoch ein BOM, so wird der Browser dieses als erstes, noch vor dem **''< | + | Die grundlegende Tätigkeit eines Webservers ist es, aufgerufene Dateien auf der Festplatte zu finden, einzulesen und 1:1 direkt wieder auszugeben. Bestes Beispiel sind hierfür die *.html oder *.txt Dateien. Enthält |
In Verbindung mit PHP wird es nicht nur eine optische, sondern bereits eine Funktionsstörung erzeugen. Der Server erkennt anhand der Endung (z.B. *.php), dass er die Datei anders behandeln muss. Er liest die Datei ein und gibt sie direkt zum Browser aus... solange, bis er auf ein **''<? | In Verbindung mit PHP wird es nicht nur eine optische, sondern bereits eine Funktionsstörung erzeugen. Der Server erkennt anhand der Endung (z.B. *.php), dass er die Datei anders behandeln muss. Er liest die Datei ein und gibt sie direkt zum Browser aus... solange, bis er auf ein **''<? | ||
Hat die Datei eine BOM, dann setzt sich die **vor** das <?php und erzeugt dadurch wiederum eine unerwünschte Ausgabe der drei Zeichen ****. Optisch nicht schön, technisch eine Katastrophe, | Hat die Datei eine BOM, dann setzt sich die **vor** das <?php und erzeugt dadurch wiederum eine unerwünschte Ausgabe der drei Zeichen ****. Optisch nicht schön, technisch eine Katastrophe, | ||
Zeile 32: | Zeile 32: | ||
Also grundsätzlich: | Also grundsätzlich: | ||
- | mySQL hat bei der Implementierung | + | mySQL hat damals, als UTF-8 noch nicht so verbreitet war, dieses implementiert. Um Platz zu sparen wurde jedoch nur eine 1-3 Byte große Codierung benutzt. |
Nach ein paar Jahren erkannte man, dass man doch den vollen Umfang von UTF-8 benötigt. Eine Anpassung auf 4 Byte war jedoch aus verschiedenen Gründen nicht möglich. Deshalb wurde ein zweites UTF-8 Format, nämlich das UTF8mb4 definiert, das in der Lage ist den vollen UTF-8 Umfang mit 1-4 Bytes aufzunehmen.\\ | Nach ein paar Jahren erkannte man, dass man doch den vollen Umfang von UTF-8 benötigt. Eine Anpassung auf 4 Byte war jedoch aus verschiedenen Gründen nicht möglich. Deshalb wurde ein zweites UTF-8 Format, nämlich das UTF8mb4 definiert, das in der Lage ist den vollen UTF-8 Umfang mit 1-4 Bytes aufzunehmen.\\ | ||
- | //**__Für uns ist es nur wichtig zu wissen, dass das UTF8 von PHP absolut | + | //**__Für uns ist es nur wichtig zu wissen, dass das UTF8 von PHP absolut |