Mam projekt w Symfony2, który działa dobrze na moim localhost, ale po przeniesieniu go na serwer zewnętrzny problem już się rozpoczął.Zestaw znaków Symfony2 dla parametrów zapytania
- nie widzę żadnych wyników nazwisk z bazy danych zawierającej polskie znaki
- W Profiler Sprawdziłem zapytania:
- sekcja „parametry” ma poprawną charset
- runnable „zapytanie” ma takie same parametry ale ze złych charset
na przykład:
(...) WHERE ((((c1_.name LIKE '%�%') OR (c3_.name LIKE '%�%') OR (..)
Parameters: ['%ś%', '%ś%', (...)]
Wszystkie tabele bazy danych ma charset = utf8_unicode_ci.
W config.yml mogę ustawić
doctrine:
dbal:
charset: UTF8
ramy Ustawianie charset nie działa.
Test /config.php mówi:
RECOMMENDATIONS:
1. Install and enable a PHP accelerator like APC (highly recommended).
2. Set short_open_tag to off in php.ini*.
3. Set magic_quotes_gpc to off in php.ini*.
* Changes to the php.ini file must be done in "/usr/local/php/php.ini".
Ale niestety nie mam dostępu do php.ini na tym serwerze. Czy to możliwe magic_quotes_gpc spowodowało ten problem? Nie mam również dostępu do linii poleceń, więc dodałem projekt (bazę danych, system plików, dostawców) za pośrednictwem ftp i phpmyadmin.
Ponieważ nie mam problemu na moim lokalnym hoście, domyślam się, że to jest problem z konfiguracją serwera i nie mam do tego dostępu, jedynym sposobem, jaki widzę, jest próba zmiany konfiguracji zestawu znaków w QueryBuilder. Gdzie mogę to zrobić? Czy wiesz, co jeszcze może spowodować ten problem?
Dzięki
Czy porównałeś phpinfo(); na obu serwerach? Inaczej, czy twój zewnętrzny serwer sieciowy pracuje z utf-8? (AddDefaultCharset UTF-8, php_value domyślny_charset "UTF-8" wewnątrz htaccess) – sglessard
Ustawiłem zestaw znaków UTF8 tak jak powiedziałeś i porównałem pola phpinfos z zestawami znaków. Są takie same, ale problem nadal istnieje. Czytałem, że ten serwer działa domyślnie latin2, więc próbowałem zmienić wszystko na latin2, ale to nie pomogło. Próbuję znaleźć miejsce/funkcję, która zastąpi "?" znaki z elementami z tablicy parametrów. Czy to jest zadanie PDOStatment? Jak mogę sprawdzić, co dzieje się tam krok po kroku? – user1826876