jeste mne napadlo, jak jsem to resil ja. Zkusil jsem pres FF prepinat kodovani a zjistil jsem tak, ktere tam sedlo. Za predpokladu, ze mas spravne SET NAMES utf a pri vypisu struktury tabulky mas na sloupci take UTF, V phpmyadminu se dela vypis struktury tabulky pres zalozku Struktura a nebo pri exportu.
Struktura tabulky pro muj pokusny chat z phpmyadminu vypada takto:
http://peter-mlich.wz.cz/…pr/minix.sql
-- DROP TABLE IF EXISTS `m_banned`;
-- DROP TABLE IF EXISTS `m_rooms`;
CREATE TABLE `m_banned` (
`ip` varchar(15) NOT NULL default '',
`text` varchar(255) default NULL,
PRIMARY KEY(`ip`)
) TYPE=MYISAM;
-- ) TYPE=MyISAM COLLATE cp1250_general_ci;
CREATE TABLE m_rooms (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nick1` varchar(16) default NULL,
`nick2` varchar(16) default NULL,
`room` int(11) default NULL,
`type` int(11) default NULL,
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`text` varchar(255) default NULL,
`ip1` varchar(15) default NULL,
`ver` varchar(3) default NULL,
PRIMARY KEY(`id`),
KEY (`nick1`),
KEY (`nick2`),
KEY (`room`),
KEY (`type`),
KEY (`ip1`)
) TYPE=MyISAM;
-- ) TYPE=MyISAM COLLATE cp1250_general_ci;
-- je komentar
Kodovani tabulky mam konkretne zakomentovane, protoze na localhost a na serveru mam rozdilne kodovani a nechal jsem zvolit default kodovani databaze..
Kodovani sloupcu tam nemam zadne, protoze chci aby odpovidali kodovani tabulky.
A) Cili, kdyz mam takhle vsechno default, tak, jestlize bude kodovani db utf, pouziji set names utf a data ulozim pres php formular s header utf, pak bude ulozene kodovani take utf, spravne. Kdyz ted budu chtit zobrazit data jako win1250, tak si udelam php s header win-1250 a pouziji SET NAMES cp1250. -- Tak by to melo spravne fungovat.
B) Ale, pokud mas ve sloupci ulozene jine kodovani nez mas nastavene na tabulce, tak by ses musel pripojit stejnym SET NAMES jako formular, ktery to ukladal, treba SET NAMES latin1. Data nacist do promenne a promennou prekodovat z latin1 do win-1250 pomoci iconv nebo mb_ treba do win-1250/cp1250, abys to mohl zobrazit v php formulari s header win-1250
http://www.php.net/manual/en/ref.mbstring.php (mb_check_encoding, mb_get_info, mb_internal_encoding, mb_convert_encoding)
http://www.php.net/…ok.iconv.php (iconv)
Jenze, pokud nevime, co mas v te tabulce ulozene (mysql dump, export), tak nelze rici, kterou z tech dvou operaci pouzit a jake kodovani na dana mista dosadit. Na linku na stranku by se to dalo aspon odhadovat, pripadne prepinat kodovani v prohlizeci a bud se trefit nebo odhadnout, jakemu se to blizi.