Autor Zpráva
Pete
Profil *
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 *
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 *
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 *
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 *
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.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0