Mam pytanko czysto techniczne... czy LMS po podłączeniu do bazy definiuje w jakim formacie podawać dane?
Konkretnie czy wysyła zapytanie: SET NAMES latin2; lub SET NAMES utf8; lub coś innego w zależności od tego co w konfigu? Wpisałem w konfig LMSa (sekcja database) server_encoding = utf8 Tabela ma ustawione DEFAULT CHARSET utf8 i COLLATION utf8_polish_ci
Po wypełnieniu pola nazwiska (na liście klientów) w bazie literkami dużymi z ogonkami i dopisaniu klienta dostaję krzaczek w miejscu literki. Jak wyedytuję kontakt to widzę nazwisko prawidłowo w polu gdzie wpisuje się nazwę ludzika.
Rozwiązanie problemu sprowadziło się do dopisania do pliku my.cnf w sekcji [mysqld] następującego wpisu: init-connect='SET NAMES utf8' i do wyedytowania i poprawienia wpisów. I to działa.
Cały problem polega na tym, że to bardzo nieładne rozwiązanie i LMS powinien sam zadeklarować w jakim formacie chce odbierać informacje z bazy danych. Rozwiązanie nie jest ładne, bo wymusza utf8 nie tylko w LMSie, ale dla wszystkich klientów korzystających z mojego MySQLa.
Po nawiązaniu połączenia LMS powinien wysyłać informacje z jakiego kodowania chce korzystać, w moim przypadku powinien wykonać zapytanie: SET NAMES utf8; lecz nie robi tego i muszę sztucznie wymusić, żeby każde połączenie zaczynało się od powyższego zapytania poprzez init-connect w pliku my.cnf.
Mam nadzieję, że dobrze nakreśliłem problem, teraz pytanie podsumowujące... Czy LMS posiada taką funkcję i dlaczego u mnie nie działa? Czy może to być problem bazy, a nie LMSa?
Moja wersja LMSa: 1.8.1 Shyla.
uczestnicy (1)
-
Konrad