You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: debugging/11_utf-8.md
+18-11Lines changed: 18 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ layout: guide
3
3
4
4
permalink: /jumpto/utf-8/
5
5
root: ../..
6
-
title: "UTF-8 (Unicode) und seltsame Zeichen"
6
+
title: "UTF-8 und die seltsamen Zeichen"
7
7
group: "Debugging"
8
8
orderId: 11
9
9
@@ -21,8 +21,8 @@ inhalt:
21
21
anchor: konsequent-utf-8
22
22
simple: "Wie man es richtig macht"
23
23
24
-
- name: "Quellen"
25
-
anchor: quellen
24
+
- name: "Weiterführende Links / Quellen"
25
+
anchor: links
26
26
simple: ""
27
27
28
28
@@ -32,15 +32,15 @@ entry-type: in-progress
32
32
### [Seltsame Zeichen](#seltsame-zeichen)
33
33
{: #seltsame-zeichen}
34
34
35
-
> *"Warum werden auf meiner Seite Umlaute und Sonderzeichen falsch darsgestellt?"*
35
+
> *"Warum werden auf meiner Seite Umlaute und Sonderzeichen falsch dargestellt?"*
36
36
37
37
38
38
#### [Warum?](#warum)
39
39
{: #warum}
40
40
41
41
Nicht selten gibt es Themen auf [php.de](http://www.php.de/) wie diese. Probleme mit Umlauten und anderen Sonderzeichen,
42
42
die fehlerhaft dargestellt werden. In folgenden werden diese Situationen mit Hintergründen und Lösungen dazu, basierend auf
43
-
den beiden Kodierungen UTF-8 (Unicode) und ISO 8859-1 (Latin-1), gezeigt.
43
+
den beiden Zeichenkodierungen UTF-8 (Unicode) und ISO 8859-1 (Latin-1), gezeigt.
44
44
45
45
46
46
#### [Situation 1](#situation-1)
@@ -60,7 +60,7 @@ werden in ISO 8859-1 allerdings auseinander genommen. Folglich wird aus `1100001
60
60
**Mögliche Ursache**
61
61
62
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 (Datenbank, Datei, Window-System..)
63
+
oder die Zeichen stammen aus einer nicht UTF-8 Fremdquelle (Datei, Windows-System, ...)
64
64
65
65
66
66
#### [Situation 2](#situation-2)
@@ -93,7 +93,8 @@ angezeigt (ignoriert) bzw. als `?` oder `�` dargestellt.
93
93
94
94
* PHP- und HTML-/Template-Dateien im Editor als *"UTF-8 ohne BOM"* speichern. Dies betrifft auch alle etwaigen serverseitigen inkludierten Dateien.
95
95
96
-
* HTTP Header Content-Type mit UTF-8 verwenden. `header('Content-Type: text/html; charset=UTF-8');`
96
+
* HTTP Header Content-Type mit UTF-8 verwenden. `header('Content-Type: text/html; charset=UTF-8');`. Der HTTP-Header hat (abgesehen vom [BOM](http://www.w3.org/International/questions/qa-html-encoding-declarations#bom))
97
+
[die höchste Priorität](http://www.w3.org/International/questions/qa-html-encoding-declarations#question) bei der Bestimmung der Zeichenkodierung.
97
98
98
99
* HTML-meta-Tag<br>
99
100
HTML 4.x: `<meta http-equiv="content-type" content="text/html; charset=utf-8" />`<br>
@@ -107,7 +108,7 @@ Siehe dazu auch [MySQL und UTF-8]({{ page.root }}/jumpto/mysql-and-utf8/)
107
108
* Datenbankverbindung von PHP zur Datenbank (zB MySQL) auf UTF-8 stellen.
108
109
Siehe dazu auch [MySQL und UTF-8]({{ page.root }}/jumpto/mysql-and-utf8/)
109
110
110
-
* Daten aus Fremdquellen müssen mittels `utf8_encode()` in UTF-8 überführt werden, wenn sie nicht als UTF-8 vorliegen.
111
+
* Daten aus Fremdquellen müssen mittels `utf8_encode()` in UTF-8 überführt werden, wenn sie nicht als UTF-8 vorliegen (Datei, Windows-System, ...).
111
112
112
113
* Bei der Anwendung von `htmlspecialchars()` und `htmlentities()` die Codierung mitgeben. Beispiel (HTML 5) für `htmlspecialchars()`:
113
114
@@ -122,8 +123,14 @@ Siehe dazu auch [MySQL und UTF-8]({{ page.root }}/jumpto/mysql-and-utf8/)
122
123
* Für deutsche Monatsnamen wie März ist u.U. `setlocale(LC_TIME, 'de_DE.utf8')` notwendig
0 commit comments