We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

mysql charset variables


madsailor
27-04-2009, 09:45
Cytat Napisał borec
Kod:
find /usr | grep php.ini
o jest - dzięki.
Ale zamiana default na iso-8859-2
i zmiana mysql-character na iso-8859-2 i restart systemu nic nie zmieniły.

madsailor
26-04-2009, 17:56
Cytat Napisał Kenjiro
PHP (jak i każdy program, który używa modułu mysql (nie mysqli)), domyślnie łączy się z domyślnym wkompilowanym językiem, a najczęściej jest to latin1.
PHP od wersji 5.2.3 posiada funkcję mysql_set_charset - http://pl.php.net/manual/en/function...et-charset.php - zalecam korzystanie z niej w każdym projekcie lub przejście na mysqli czy też jakiekolwiek klasy separujące warstwy bazy od logiki, co polecam jeszcze bardziej .

P.S. Jeśli z jakiegoś powodu PHP jest starszy, zawsze można użyć mysql_query ( "SET NAMES 'utf8'" );

P.P.S. Wybaczcie, że wyciągam stary wątek, ale może się komuś przyda .
A czy mozna przestawić PHP na latin2 bez rekompilacji ?
W fedorze miałem php.ini, w gentoo nigdzie tego nie ma.

Kenjiro
26-02-2009, 21:31
PHP (jak i każdy program, który używa modułu mysql (nie mysqli)), domyślnie łączy się z domyślnym wkompilowanym językiem, a najczęściej jest to latin1.
PHP od wersji 5.2.3 posiada funkcję mysql_set_charset - http://pl.php.net/manual/en/function...et-charset.php - zalecam korzystanie z niej w każdym projekcie lub przejście na mysqli czy też jakiekolwiek klasy separujące warstwy bazy od logiki, co polecam jeszcze bardziej .

P.S. Jeśli z jakiegoś powodu PHP jest starszy, zawsze można użyć mysql_query ( "SET NAMES 'utf8'" );

P.P.S. Wybaczcie, że wyciągam stary wątek, ale może się komuś przyda .

del_jachim
23-11-2008, 09:53
Cytat Napisał borec
A jakie masz ustawione kodowania dla baz i tabeli?
wydaje mi się że zarówno dla bazy jak i tabel mam latin2 - jak można to sprawdzić? dodam jeszcze że na innym serwerze nie miałem problemu z tą bazą, a w phpmyadminie mam polskie znaki. ale na stronie z poziomu php jesli nie użyje po połączeniu SET CHARACTER SET latin2 już polskich znaków nie ma...

borec
23-11-2008, 07:51
A jakie masz ustawione kodowania dla baz i tabeli?

del_jachim
22-11-2008, 23:05
Cytat Napisał borec
Można, w pliku konfiguracyjnym serwera, standardowo /etc/my.cnf lub /etc/mysql/my.cnf.

tak podejrzewałem, ale tam nigdzie nie ma zmiennych z wartością utf8...domyślnie wszędzie bylo latin1, pozmnieniałem na latin2 i teraz wygląda to tak jak podaje poniżej, ale to niestety nie pomogło...oczywiście serwer mysql restartowalem...

character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin1

[php-cgi]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin2

[mysql]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin2

[mysqladmin]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin2

[mysqlcheck]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin2

[mysqldump]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin2

[mysqlimport]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin2

[mysqlshow]
character-sets-dir=/usr/share/mysql/charsets
default-character-set=latin2

[myisamchk]
character-sets-dir=/usr/share/mysql/charsets

[myisampack]
character-sets-dir=/usr/share/mysql/charsets

borec
22-11-2008, 17:09
Można, w pliku konfiguracyjnym serwera, standardowo /etc/my.cnf lub /etc/mysql/my.cnf.

del_jachim
22-11-2008, 13:42
witam,
mam problem z kodowaniem znaków w mysql na serwerze deydkowanym. aby były one wyświetlane to po każdym nawiązaniu połączenia z mysql z poziomu php musze wykonać zapytanie SET CHARACTER SET latin2 - wtedy wyświetlają sie poprawnie, jeśli tego zapytania nie wykonam to wyświetlają sie krzaki.

czy da się tak skonfigurować środowisko mysql aby domyślnie używało latin2 przy połączeniach z poziomu php? Wykonanie zapytania SHOW VARIABLES LIKE '%character%'; wyświetla mi wyniki:

character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin2
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

Domyślam się że to te zmienne odpowiadają za kodowanie - czy można je gdzieś zmienić, żeby zamiast wartości utf8 zawierały latin2?