Autor | Zpráva | ||
---|---|---|---|
Pete Profil * |
#1 · Zasláno: 17. 4. 2007, 09:58:13
Zdravim vsechny a prosim o pomoc.
Na nasem webovem serveru s debianem jsme presli z MYSQL 4 na 5.0.32. Nyni vsak se divne chova kodovani na ruznejch strankach v 1250 a UTF8. Pokud ma webmastr nastaveno SET NAMES, SET CHARACTER SET -treba utf8- jak by melo spravne byt, TAK MU TO PRESTALO FUNGOVAT!! - hieroglify. Pokud tyto direktivy neuvede, funguje to.(defaultni kodovani mysql utf8). Ale nemuzeme vsechny vebmastery obesilat, aby si to vymazali, ze. Pokud zemnime default kodovani nas 1250, situace se obrati, UTF8 zacne fungovat a nefunguje 1250. Neporadite nekdo ? |
||
Kajman_ Profil * |
#2 · Zasláno: 17. 4. 2007, 11:21:43
Bylo by vhodné nastavit při přechodu do nového systému u každé databáze takové kódování, ve kterém jsou opravdu data.
Pak by při set names by mělo být vše ok a také by možná stačilo nastavit SET character_set_results = NULL; aby se neprováděly automatické konverze a fungovaly stránky, které si to nenastavily. |
||
Pete Profil * |
#3 · Zasláno: 17. 4. 2007, 14:17:18
Dekuji Kajmanovi za rychlou odpoved. Zkusil jsem character_set_results = NULL aplikovat na mysql.cnf, ale pri restartu se mysqld chova, ze ho nezna a vypise unknown variable - character_set_results = NULL, pritom ve vypisu promennych mysql tam evidentne je a je nastaven na utf8. Jak to tam mam dostat ?
Dekuji |
||
Pete Profil * |
#4 · Zasláno: 17. 4. 2007, 16:50:38
Tak ten prikaz character_set_results = NULL se tam podarilo dostat, nicmene stejne to nefunguje a porad to sifruje data na strankach, kde je nastaveno v PHP SET NAMES. Pro poradek uvedu vypis
my.cnf: (pouze co se vztahuje ke kodovani) ---------------------------------------------------------------------- ------ [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 max_connections = 150 #init-connect='SET NAMES utf8' #default-character-set= #character_set_server=utf8 # # You can also put it into /var/log/mysql/mysql.log but I leave it in /var/log # for backward compatibility. Both location gets rotated by the cronjob. #log = /var/log/mysql/mysql.log log = /var/log/mysql.log basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/english ---------------------------------------------------------------------- ----- takze tam vlastne zadny default kodovani nastaveno neni a vypis promennych mysql: ---------------------------------------------------------------------- ----- character set client utf8 (Globální hodnota) latin1 character set connection utf8 (Globální hodnota) latin1 character set database latin1 character set filesystem binary character set results utf8 (Globální hodnota) latin1 character set server latin1 character set system utf8 character sets dir /usr/share/mysql/charsets/ collation connection utf8_czech_ci (Globální hodnota) latin1_swedish_ci collation database latin1_swedish_ci collation server latin1_swedish_ci completion type 0 concurrent insert 1 connect timeout 5 ---------------------------------------------------------------------- ---- Tak, je z toho nekdo moudry, treba Kajman_ ? :)) |
||
Kajman_ Profil * |
#5 · Zasláno: 17. 4. 2007, 20:36:43
Pokud nejsou data v pořádku, když si uživatel nastaví set names, tak je problém v tom, že data v databázi neodpovídají kódové stránce, kterou jste jim nastavili při updatu. Tam je problém největší. Když tohle zpravíte, můžete něco konfigurovat dál.
http://dev.mysql.com/doc/refman/4.1/en/charset-upgrading.html Raději tam dejte defaulty, do kterých se dá dát čeština. Latin1 není pro český hosting to pravé ořechové a ten je defaultní defaultní, tak se tam dá, když to nenastavíte. A to character_set_results = NULL by možná šlo dát do init-connect, ale střílím od boku. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0