[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: