View previous topic :: View next topic |
Author |
Message |
madey Tux's lil' helper
Joined: 07 Dec 2005 Posts: 107 Location: Kraków, Poland
|
Posted: Tue Aug 08, 2006 3:33 pm Post subject: [SOLVED][MySQL] polskie znaki |
|
|
Ostatnio zainstalowałem MySQL-a w wersji 5.0.22 i o dziwo nie działają w nim polskie znaki. Niezależnie od tego czy próbuje je tam wpisać przez tekstowego klienta, z konsoli czy przez php, to zawsze pojawiają się pytajniki.
Zawsze byłem przekonany, że MySQL domyślnie sobie z tym po prostu radzi. Sprawdziłem i ma wkompilowaną obsługę odpowiednich charsetów.
Poza tym przestwiłem go w /etc/my.conf, aby domyślnie bazy i tabele były kodowane w latin2, ale nic.
Ktoś miał może podobny problem?
Last edited by madey on Wed Aug 09, 2006 8:24 am; edited 1 time in total |
|
Back to top |
|
|
Raku Bodhisattva
Joined: 28 Feb 2004 Posts: 2374 Location: Poland
|
Posted: Tue Aug 08, 2006 5:46 pm Post subject: |
|
|
czy po przestawieniu mysql na latin2 założyłeś od nowa bazy lub zmieniłeś ich kodowanie na latin2? _________________ raku
Powered by Archlinux |
|
Back to top |
|
|
madey Tux's lil' helper
Joined: 07 Dec 2005 Posts: 107 Location: Kraków, Poland
|
Posted: Tue Aug 08, 2006 6:09 pm Post subject: |
|
|
Bazę przeniosłem z innego systemu, gdzie pracuje poprawnie w latin2. Tam charset był ustalony na poziomie tabeli na latin2 i w trakcie eksportu zostało to uwzględnione w SQL-u. W efekcie klient mysql-a pokazuje, że zarówno bazy są domyślnie ustawiane na latin2 jak i każda tabela ma ustawione kodowanie na latin2 z osobna. Co nie zmienia faktu, że dalej to nie działa. Nawet jeżeli polskie znaczki zniknęłyby po drodze podczas eksportu (w schowku czy edytorze, co jest mało prawdopodobne, bo robiłem to w spolonizowanym KDE) to powinno je się tam dać wstawić.
Czy np. błędna polonizacja samego systemu może mieć taki wpływ na Mysql-a?? Mało mi się to wydaje prawdopodobne, ale tonący brzytwy się chwyta? Albo ta wersją MySQL-a jest jeszcze niedopracowana? Czy ktoś używa 5.0.22 z portage z polskimi znakami, a jeśli tak to z jakimi flagami go instalował?? Ja ustawiłem: berkdb i ssl. |
|
Back to top |
|
|
qermit Veteran
Joined: 02 Feb 2005 Posts: 1032
|
Posted: Tue Aug 08, 2006 11:18 pm Post subject: |
|
|
Ostatnio też się troszku męczyłem z kodowaniem. Po zmianie jednej magicznej zmiennej (query=set session ta_magiczna_zmienna = latin2) mogłem podłączyć się do bazy danych lkientem z naszym rozimym kodowaniem do serwera gdzie wszystkie tabele były w UTF
Chyba coś z encoding i result
EDIT 1: znalazłem to tutaj http://pl2.php.net/manual/pl/function.mysql-pconnect.php _________________ "A co ty masz w swoim LinuXie?" - Dr Qermit |
|
Back to top |
|
|
martin.k Guru
Joined: 28 Nov 2004 Posts: 493 Location: Wylatowo, Polska
|
Posted: Wed Aug 09, 2006 6:08 am Post subject: Re: [MySQL] polskie znaki |
|
|
madey wrote: | Ostatnio zainstalowałem MySQL-a w wersji 5.0.22 i o dziwo nie działają w nim polskie znaki. Niezależnie od tego czy próbuje je tam wpisać przez tekstowego klienta, z konsoli czy przez php, to zawsze pojawiają się pytajniki.
Zawsze byłem przekonany, że MySQL domyślnie sobie z tym po prostu radzi. Sprawdziłem i ma wkompilowaną obsługę odpowiednich charsetów.
Poza tym przestwiłem go w /etc/my.conf, aby domyślnie bazy i tabele były kodowane w latin2, ale nic.
Ktoś miał może podobny problem? |
Ja też miałem takie "przeboje" po przesiadce na nowszą wersję MySQL'a. Po zmianach w konfigu mysqla trzeba jeszcze (przynajmniej u mnie było trzeba) zmodyfikować funkcję phpa łączącą z bazą i zaraz po dokonaniu połączenia z bazą wykonać zapytanie SET NAMES 'latin2'. Np.:
Code: |
<?php
(...)
if (!$db_lnk =@mysql_connect("localhost","*****","*******")){
echo('Wystąpił błąd podczas połączenia z serwerem mysql...<br>');
exit;
}
$queryNames = "SET NAMES 'latin2'";
mysql_query($queryNames);
(...)
?> |
_________________ linux-2.6.17 +ck +R4 +lockless +genetic-as +... więcej nie pamiętam
LRU #299256 |
|
Back to top |
|
|
madey Tux's lil' helper
Joined: 07 Dec 2005 Posts: 107 Location: Kraków, Poland
|
Posted: Wed Aug 09, 2006 8:23 am Post subject: |
|
|
Zadziałało w wersji drugiej tzn. tak jak opisał maritn.k, więc daje SOLVED, ale swoją drogą przydałaby się jakaś metoda pozwalająca uniknąć zadawania dodatkowego zapytania za każdym razem.
Dzięki za pomoc. |
|
Back to top |
|
|
Grosik Tux's lil' helper
Joined: 07 Aug 2004 Posts: 147 Location: Kielce [PL]
|
Posted: Wed Aug 09, 2006 9:29 am Post subject: |
|
|
Ja dodalem do my.cnf to w sekcji [mysqld]:
Code: | init-connect='SET NAMES latin2' |
i dziala . Dzieki temu uzytkownicy nie musza dodawac sami tego dodatkowego zapytania. |
|
Back to top |
|
|
|