Skip to content

Commit e90c43b

Browse files
committed
update
1 parent 9b423b4 commit e90c43b

1 file changed

Lines changed: 8 additions & 14 deletions

File tree

debugging/11_utf-8.md

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ den beiden Zeichenkodierungen UTF-8 (Unicode) und ISO 8859-1 (Latin-1), gezeigt.
4646
#### [Situation 1](#situation-1)
4747
{: #situation-1}
4848

49-
Wenn ein Dokument als Unicode (UTF-8) abgespeichert wurde, jedoch als ISO 8859-1 interpretiert wird, geschieht folgendes:
49+
Wenn ein Dokument als Unicode (UTF-8) abgespeichert wurde, aber als ISO 8859-1 interpretiert wird, geschieht folgendes:
5050

5151
~~~
5252
Erwartete Ausgabe: ä ö ü
@@ -56,11 +56,7 @@ Wirkliche Ausgabe: ä ö ü
5656
Das `ä` wurde binär gesehen als `11000011 10100100` gespeichert. Diese beiden Bytes gehören laut UTF-8 zusammen,
5757
werden in ISO 8859-1 allerdings auseinander genommen. Folglich wird aus `11000011` ein `Ã` und aus `10100100` ein `¤`-Zeichen.
5858

59-
60-
**Mögliche Ursache**
61-
62-
* Für den Header/Metatag ist charset als UTF-8 gesetzt, die Seiten sind jedoch nicht als UTF-8 gespeichert
63-
oder die Zeichen stammen aus einer nicht UTF-8 Fremdquelle (Datei, Windows-System, ...)
59+
Was zu beachten ist, damit es zu keiner solchen Fehlinterpretation kommt, ist [weiter unten](#konsequent-utf-8) angeführt.
6460

6561

6662
#### [Situation 2](#situation-2)
@@ -77,12 +73,7 @@ Wirkliche Ausgabe: � � �
7773
Mit anderen Worten wurde hier ein `ä` als `11100100` gespeichert. In UTF-8 ist dieses Byte jedoch **ungültig**, wird also nicht
7874
angezeigt (ignoriert) bzw. als `?` oder `` dargestellt.
7975

80-
81-
**Mögliche Ursache**
82-
83-
* Fehlender oder falscher Header/Metatag.
84-
85-
* Oder eine sog. Überkodierung: header und Zeichen sind UTF-8, dennoch irgendwo zusätzlich ein `utf8_encode()` (zuviel).
76+
Was zu beachten ist, damit es zu keiner solchen Fehlinterpretation kommt, ist [weiter unten](#konsequent-utf-8) angeführt.
8677

8778

8879
### [Lösung: Nutze konsequent UTF-8](#konsequent-utf-8)
@@ -118,12 +109,15 @@ angezeigt (ignoriert) bzw. als `?` oder `�` dargestellt.
118109
);
119110
}
120111

112+
* Generell ist darauf zu achten, das es zu keinen "Überkodierungen" kommt, zB wenn ein bereits als UTF-8 kodierter String erneut
113+
mittels `utf8_encode()` behandelt wird.
114+
121115

122116
### [Weiterführende Links / Quellen](#links)
123117
{: #links}
124118

125119
* [Angabe der Zeichencodierung in HTML (W3C)](http://www.w3.org/International/questions/qa-html-encoding-declarations)
126120
* [Zeichencodierung für Anfänger (W3C)](http://www.w3.org/International/questions/qa-what-is-encoding)
127-
* [MySQL und UTF-8 (php.de)]({{ page.root }}/jumpto/mysql-and-utf8/)
128-
* [Auflistung gesammelter, relevanter Punkte von jspit](http://www.php.de/forum/webentwicklung/php-einsteiger/1448531-umlaute-im-tiptext?p=1448599#post1448599) (php.de)
121+
* [MySQL und UTF-8 (php.de Wissenssammlung)]({{ page.root }}/jumpto/mysql-and-utf8/)
122+
* [Auflistung gesammelter, relevanter Punkte von jspit (php.de)](http://www.php.de/forum/webentwicklung/php-einsteiger/1448531-umlaute-im-tiptext?p=1448599#post1448599)
129123
* [Umlautprobleme (floern.com)](http://floern.com/webscripting/umlautproblem)

0 commit comments

Comments
 (0)