PHP + MySQL + kodowanie
Witam,
Wiem że było na ten temat, przeczytałem wątki w archiwum listy, podobnie
jak dokumentację mysqla na temat charsetów i collate oraz dokumentację
php na temat mysql i mysqli, ale jednoznacznej odpowiedzi na swoje
pytanie nie znalazłem:
Dla ustalenia uwagi:
- dwie aplikacje w PHP - skrawki tekstu w plikach .php są w latin2 w
jednej z nich, a w utf8 w drugiej.
- oczywiście autorzy żadnej z tych aplikacji nie mieli pojęcia o
istnieniu nagłówka content-type, więc go nie wysyłają, więc żeby
w ogóle pliterki zawarte w plikach .php wyświetlały się poprawnie,
konieczne było w definicjach vhostów tych aplikacji ustawienie
odpowiednio:
php_value default_charset iso-8859-2
i
php_value default_charset utf8
- obie aplikacje korzystają z modułu mysql.so w mod_php
- żadna z tych aplikacji nie ma pojęcia o wykonywaniu "set names
'<charset>'" po podłączeniu do bazy, a ja nie mam zamiaru się w nich
babrać żeby im to zaimplementować
- każda z aplikacji ma własnego usera i bazę w mysql, w tych bazach są
głównie różniste teksty które są przez owe aplikacje wyświetlane na
stronie (po odpowiednim zmieszaniu w naturalny sposób z tekstami
zapisanymi na sztywno we wspomnianych plikach .php)
Pytanie: czy da się tak skonfigurować system (tzn: czy ktoś to
zweryfikował), aby obie aplikacje wyświetlały poprawne pliterki, przy
spełnieniu wszystkich następujących warunków:
- bez grzebania się w kodzie aplikacji,
- bez przekodowywania plików .php na wspólne kodowanie
- bez jakiegoś magicznego przekodowywania stron w locie przy pomocy
czarnej magii na poziomie Apache'a
Dodatkowym opcjonalnym warunkiem byłoby, żeby serwer mysql chodził z
charset_server=utf8 i wszystkie bazy i tabele były wewnętrznie również w
utf8. Zdaję sobie jednak sprawę z tego, że to może być za duże
wymaganie, więc jestem też jak najbardziej zainteresowany rozwiązaniami
wymagającymi innego kodowania baz.
pozdrawiam,
--
Marcin Owsiany <porridge@debian.org> http://marcin.owsiany.pl/
GnuPG: 1024D/60F41216 FE67 DA2D 0ACA FC5E 3F75 D6F6 3A0D 8AA0 60F4 1216
Reply to: