phpbar.de logo

Mailinglisten-Archive

[php] Umstellung auf UTF-8

[php] Umstellung auf UTF-8

Sebastian Mendel lists at sebastianmendel.de
Fre Okt 26 14:18:13 CEST 2007


Lutz Zetzsche schrieb:

>>> Was steht denn in der Datenbank? ISO-8859-1 oder UTF-8? Und welchen
>>> Zeichensatz verwendest Du für die Datenbankverbindung?
>> PhpMyAdmin zeigt unter "Struktur" an, dass alles in utf8_unicode_ci
>> vorliegt.
> 
> Dann sollten die Daten auch in UTF-8 vorliegen. Werden sie in phpMyAdmin 
> denn auch korrekt angezeigt?
> 
>> Aber heisst das dann auch, dass die Daten entsprechend vorliegen,
>> oder sind sie sozusagen
>> noch, "nicht sichtbar", in ISO o.ä. hinterlegt? Wenn ja, wie komme
>> ich an die Einstellung dafür?
> 
> Wenn die Felder in UTF-8 formatiert sind, dann liegen die Daten in UTF-8 
> vor. 

das kann schon unterschiedlich sein, in einer Tabelle können schon ISO Daten
liegen obwohl die Tabelle als UTF-8 konfiguriert ist ...

man kann den Zeichensatz einer Tabelle ändern auch ohne die darin
vorhandenen Daten umzuwandeln ...

aber wie schon geschrieben das ist im MySQL Handbuch erklärt

http://dev.mysql.com/doc/refman/5.0/en/alter-table.html

" If you want to change the table default character set and all character
columns (CHAR, VARCHAR, TEXT) to a new character set, use a statement like this:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

Warning

The preceding operation converts column values between the character sets.
This is not what you want if you have a column in one character set (like
latin1) but the stored values actually use some other, incompatible
character set (like utf8). In this case, you have to do the following for
each such column:

ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;

The reason this works is that there is no conversion when you convert to or
from BLOB columns. "



-- 
Sebastian

php::bar PHP Wiki   -   Listenarchive