Tschechische Sonderzeichen ...
snorri
- php
Hallo!
Ich muss ein Formular bauen, das auch tschechische und polnische Sonderzeichen akzeptiert und in eine mySQL-Datenbank schreibt. Das geht so ohne weiteres wohl nicht, einige abgefahrenere Zeichen werden in umgedrehte Fragezeichen und ähnliches umgewandelt.
Ich habe mal mit einer lokalen Installation von phpBB herumgespielt, das kann mit diesen Zeichen umgehen. Allerdings zeigt ein Blick in die Datenbank, dass phpBB die Zeichen in der Form "{" speichert. Gibt es eine PHP-Funktion, die das für mich macht? Und auch wieder rückgängig, zum editieren von vorhandenen Datenbankinhalten?
-- snorri
Hi,
Gibt es eine PHP-Funktion, die das für mich macht? Und auch wieder rückgängig, zum editieren von vorhandenen Datenbankinhalten?
htmlentities() bzw. html_entity_decode().
Im Handbuch nur sehr schwer zu finden, gell?
Gruß, Cybaer
Hallo Cybaer,
na, soooo blind bin ich auch wieder nicht ;)
htmlentities() beherrscht nur einen Teil der erforderlichen Sonderzeichen (kann man sich mit get_html_translation_table() ausgeben lassen). So gibt es beispielsweise kein "ż" (ein z mit einem Punkt drüber) und auch nicht das "ł" (durchgestrichene l), das im Polnischen sehr häufig ist.
Ausserdem maskiert mir htmlentities() auch HTML-Codes, die in dieses Formular zu allem Überfluss auch noch eingegeben werden müssen.
Ich habe auch schon versucht, den Zeichensatz umzustellen auf:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
Leider funktionieren dann die spanischen Zeichen nimmer :(
-- snorri
hi,
Ich habe auch schon versucht, den Zeichensatz umzustellen auf:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
Leider funktionieren dann die spanischen Zeichen nimmer :(
wenn du "alles in einem" haben willst, stelle auf unicode um.
gruß,
wahsaga
Hi wahsaga,
wenn du "alles in einem" haben willst, stelle auf unicode um.
Da Unicode generell der verwendete Zeichensatz ist, wüsste ich nicht, wie man darauf umstellen könnte.
Du meinst die Codierung UTF-8?
Live long and prosper,
Gunnar
Hi,
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
Das dürfte PHP auch ziemlich egal sein (dem Browser hingegen wohl weniger). Dort stellt man den Zeichensatz mit setlocale() um.
Leider funktionieren dann die spanischen Zeichen nimmer :(
Tja nun, s. Wahsaga. Man kann nicht alles haben - wenigstens nicht, ohne es einzustellen. =;-)
Gruß, Cybaer