Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED][MySQL] polskie znaki
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish)
View previous topic :: View next topic  
Author Message
madey
Tux's lil' helper
Tux's lil' helper


Joined: 07 Dec 2005
Posts: 107
Location: Kraków, Poland

PostPosted: Tue Aug 08, 2006 3:33 pm    Post subject: [SOLVED][MySQL] polskie znaki Reply with quote

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
View user's profile Send private message
Raku
Bodhisattva
Bodhisattva


Joined: 28 Feb 2004
Posts: 2374
Location: Poland

PostPosted: Tue Aug 08, 2006 5:46 pm    Post subject: Reply with quote

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
View user's profile Send private message
madey
Tux's lil' helper
Tux's lil' helper


Joined: 07 Dec 2005
Posts: 107
Location: Kraków, Poland

PostPosted: Tue Aug 08, 2006 6:09 pm    Post subject: Reply with quote

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
View user's profile Send private message
qermit
Veteran
Veteran


Joined: 02 Feb 2005
Posts: 1032

PostPosted: Tue Aug 08, 2006 11:18 pm    Post subject: Reply with quote

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
View user's profile Send private message
martin.k
Guru
Guru


Joined: 28 Nov 2004
Posts: 493
Location: Wylatowo, Polska

PostPosted: Wed Aug 09, 2006 6:08 am    Post subject: Re: [MySQL] polskie znaki Reply with quote

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
View user's profile Send private message
madey
Tux's lil' helper
Tux's lil' helper


Joined: 07 Dec 2005
Posts: 107
Location: Kraków, Poland

PostPosted: Wed Aug 09, 2006 8:23 am    Post subject: Reply with quote

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
View user's profile Send private message
Grosik
Tux's lil' helper
Tux's lil' helper


Joined: 07 Aug 2004
Posts: 147
Location: Kielce [PL]

PostPosted: Wed Aug 09, 2006 9:29 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum