• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

encoding wirrwarr

rasputin

Lounge-Member
ich bin momentan mit einer internationalen seite beschäftigt, da kommen natürlich verschiedene sonderzeichen vor. deshalb soll nun mein mangelhaftes verständnis von verschiedenen encodings vom tisch.
nun habe ich einige fragen dazu:

1. die codierung von entities kann man per meta-tag und/oder per http-header angeben. stimmt es, dass der header `vom browser gegenüber dem meta-tag priorisiert wird?

2. für eine internationale seite müsste man utf8 nehmen?

3. muss man bei utf8 trotzdem die sonderzeichen codieren? z.b. ä --> ä

4. wenn jemand ein formular auf der seite ausfüllt, wird der inhalt automatisch vom browser codiert beim senden. nach welcher angabe (header/meta) geschieht dies?

5. muss ich bei verwendung von ajax das zeug selber encodieren?

6. wann kommen die daten url-encoded auf dem server an.

7. auf dem server nimmt php das zeugs entgegen, was wird automatisch decodiert?

8. der text kommt in eine datenbank (mysql). dort kann man verschiedene kollationen wählen. welche sollte man nehmen?

9. kann man utf8 direkt in die tabelle schreiben oder muss man das noch irgendwie codieren?

10. bei utf8 wären ja auch die anführungszeichen codiert, so dass automatisch keine xss-attacken mehr möglich wären?


phuuu das wars vorerst. ich freue mich auf die antworten.
 
1. die codierung von entities kann man per meta-tag und/oder per http-header angeben. stimmt es, dass der header `vom browser gegenüber dem meta-tag priorisiert wird?

Die Kodierung der entitites hat nichts mit dem charset zu tun. Bei der zweiten Aussage bin ich nicht sicher,

2. für eine internationale seite müsste man utf8 nehmen?

... oder den Charset, der die vn dir gewünschten Zeichen enthält.

3. muss man bei utf8 trotzdem die sonderzeichen codieren? z.b. ä --> ä

nein.

4. wenn jemand ein formular auf der seite ausfüllt, wird der inhalt automatisch vom browser codiert beim senden. nach welcher angabe (header/meta) geschieht dies?

Nach der in der die seite dargestellt wird.

5. muss ich bei verwendung von ajax das zeug selber encodieren?

AJAX wird immer im UTF Format übertragen.

6. wann kommen die daten url-encoded auf dem server an.

immer.

7. auf dem server nimmt php das zeugs entgegen, was wird automatisch decodiert?

Alles.

8. der text kommt in eine datenbank (mysql). dort kann man verschiedene kollationen wählen. welche sollte man nehmen?

die die du brauchst.

9. kann man utf8 direkt in die tabelle schreiben oder muss man das noch irgendwie codieren?

Wenn die Tabelle in utf eingestellt ist, dann nicht.

10. bei utf8 wären ja auch die anführungszeichen codiert, so dass automatisch keine xss-attacken mehr möglich wären?

Wieso wird das Anführungszeichen kodiert?
 
Zu 1: Handelt es sich um ein XHTML-Dokument, ist das Meta-Tag völlig "wertlos".
Das gute daran aber ist: Du brauchst nicht mal einen Hedaer senden, denn ohne jegliche Angabe einer Kodierung ist ein Dokument automatisch UTF-8.
Wie es sich mit einem HTML-Dokument verhält, sollte sich mit einem kleinen Test klären lassen.
 
6. wann kommen die daten url-encoded auf dem server an.

immer.
also werden die daten zuerst z.b. utf8 codiert und danach noch url-encoded?

7. auf dem server nimmt php das zeugs entgegen, was wird automatisch decodiert?

Alles.
das heisst, man muss die daten zuerst durch utf8_encode() durchlaufen lassen, bevor sie in die db kommen?

9. kann man utf8 direkt in die tabelle schreiben oder muss man das noch irgendwie codieren?

Wenn die Tabelle in utf eingestellt ist, dann nicht.
du meinst, wenn die kollation auf utf8 ist. für mehrsprachige inhalte wäre das dann utf8_unicode_ci?

10. bei utf8 wären ja auch die anführungszeichen codiert, so dass automatisch keine xss-attacken mehr möglich wären?

Wieso wird das Anführungszeichen kodiert?
ok, anführungszeichen werden nicht codiert. also den text zuerst durch htmlspecialchars() durchjagen.
 
Zurück
Oben