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.