Mailinglisten-Archive |
Tim Strehle wrote:
> Hallo Markus,
>
>> Wir benutzen bisher auf input-Feldern htmlentities um
>> Sonderzeichen etc. zu schützen. In
>> chinesisch gibt das Probleme -> die chinesischen Zeichen
>> werden zerhauen.
>> Ohne den Befehl htmlentities würde es funktionieren.
>
> hmm, wir benutzen htmlspecialchars() zur Darstellung, damit gab es
> bisher auch mit seltsamen Zeichen keine Probleme. Probier das doch mal...
>
>> Also meta-Angaben möchten wir auf UTF-8 innerhalb des
>> CMS umstellen (um deutsche Labels und innerhalb
>> Input-Feldern chinesische Zeichen darstellen
>> zu können).
>
> Genau - oder falls möglich, das gleich als HTTP-Header schicken:
>
> header('Content-Type: text/html; charset=UTF-8');
>
>> Weiteres Problem sind Felder mit VARCHAR 255
>> in der Datenbank.
>> Das CMS kennt Felder (Kurztexte), in denen man max.
>> 255 Zeichen speichern kann (Datentyp VARCHAR 255).
>> Bei chinesischen Zeichen würde natürlich nur die Hälfte
>> in solche Felder passen etc. usw. usf..
>
> Dafür gibt's die PHP-Funktion mb_strcut():
>
> http://de.php.net/manual/en/function.mb-strcut.php
>
> Falls Ihr irgendwo auf die Inhalte strpos(), substr() etc. anwendet, muß
> man diese durch mb_strpos(), mb_substr() etc. ersetzen:
>
> http://de.php.net/manual/en/ref.mbstring.php
>
> Und ich vermute, daß man auch bei der Datenbank ein wenig tun muß, damit
> die UTF-8 bzw. Unicode sauber speichert und verarbeitet...
>
> Viel Spaß,
> Tim
>
********
Hallo,
bei uns wird je Sprache der passende ISO-code eingefügt
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=$isocode\">
z.B.
de=ISO-8859-1
th=ISO-8859-11
ru=ISO-8859-5
cn (gb)=gb2312
cn (big 5)=big5
Helmut P. Fleischhauer
php::bar PHP Wiki - Listenarchive