MySQL kodowanie znaków

Konfiguracja serwerów, usług, itp.
daarioo
Posty: 15
Rejestracja: 10 grudnia 2007, 11:33

MySQL kodowanie znaków

Post autor: daarioo »

Witam.

Mam pewien problem z MySQL. Otóż na stronach internetowy, które korzystają z bazy MySQL na moim serwerze nie ma polskich znaków. Wyświetlają się jedynie znaki zapytania... Dość dużo czasu spędziłem na szukaniu po internecie co jest nie tak. A więc ustawiłem już to:
  • w pliku /etc/apache2/conf.d/charset mam

    Kod: Zaznacz cały

    AddDefaultCharset ISO-8859-2
  • w pliku /etc/php5/apache2/php.ini mam

    Kod: Zaznacz cały

    default_charset="iso-8859-2"
  • metody porównywania znaków w bazie mam ustawione na latin2_general_ci
  • w plikach *.php mam ustawione kodowanie na iso-8859-2
  • przy logowaniu do PhpMyAdmina ustawiam kodowanie na iso-8859-2
  • system porównań dla połączenia MySQL mam ustawiony na latin2_general_ci
  • według PhpMyAdmin'a jedynie to jest ustawione inaczej: System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
Czy mógłby mi ktoś powiedzieć dlaczego nadal nie mam (epitety) polskich znaków diakrytycznych!? Walczę już z tym dobry dzień i nadal nic...

P.S.
wersja PhpMyAdmin'a: 2.9.1.1
wersja MySQL: 5.0.32-7et
wersja apache: 2.2.3-4
Awatar użytkownika
Outlaw
Beginner
Posty: 116
Rejestracja: 17 września 2007, 23:50
Lokalizacja: eth0

Post autor: Outlaw »

Spróbuj po połączeniu z bazą danych wykonać polecenie:
"set charset latin2;"

W php:

Kod: Zaznacz cały

mysql_query( "set charset latin2" );
kodowanie oczywiście możesz zmienić.
daarioo
Posty: 15
Rejestracja: 10 grudnia 2007, 11:33

Post autor: daarioo »

Nie wiem czemu... ale tak się dzieje tylko jak się łączę jako root z bazą... Każdym nowym użytkownikiem mam polskie znaki... Any ideas?
Stawi
Beginner
Posty: 209
Rejestracja: 10 lutego 2007, 16:02
Lokalizacja: Kraków

Post autor: Stawi »

Tak jak powiedzial Outlaw, lub w przypadku MySQL 5+ lepiej zrobic:

Kod: Zaznacz cały

mysql_query('SET NAMES latin2'); // czy jakie tam inne kodowanie potrzebujesz.
Moze przy laczeniu sie jako root masz inne kodowanie. Lub jesli laczyc sie jako root przez klienta tekstowego (nie phpmyadmin) to wazne jest jakie masz kodowanie konsoli.
daarioo
Posty: 15
Rejestracja: 10 grudnia 2007, 11:33

Post autor: daarioo »

W konsoli utf-8. Ale ja wykonuję polecenia na phpMyAdminie. Jak już wszystko co można było w phpMyAdminie poustawiać na latin2 i po dołączeniu do kodu linii

Kod: Zaznacz cały

mysql_query('SET NAMES latin2');
stwierdzam że działa.

Dzięki za pomoc
ODPOWIEDZ