Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> LIKE case-insensitive, odwieczne poblemy z kodowaniem
soomal
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 4.03.2007

Ostrzeżenie: (0%)
-----


LIKE wywołany w bazie wyszukuje nazwy dla "%Żył%", nie znajduje dla "%żył".
Problem pewnie leży w tym, że znaki są zapisane w bazie w ISO-8859-2, a kodowanie (metoda porównywania napisów w phpMyAdmin) ustawione na latin1_swedish_ci, przez to engine bazy nie potrafi dobrze przetłumaczyć małych liter na duże, dużych na małe więc jest czuły na wielkość znaku.
Zmiany charsetu dla bazy nie pomogła (latin2_general_ci), dla tabel też. Zmiana charsetu dla poszczególnych kolumn wywołuje błąd:
http://forum.php.pl/lofiversion/index.php/t25622.html , który jest bugiem mysql nienaprawionym od 2004. Dodatkowo konwersja na latin2 a potem z powrotem na latin1 skopała mi kodowanie (zamiast znaków polskich były '?').

Więc zrzuciłem dumpa i wszędzie gdzie było latin1 ustawiłem latin2, ale po dodaniu takiej bazy okazało się, że występuje znów błąd (illegal mix of collations latin1, latin2). Okazało się (po show variables like "charset%"), ze character_set_server=latin1. Zmiana na latin2 nie pomogła.

Może ktoś już miał taki problem i potrafi poradzić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zrzut masz na pewno w latin2?

SET NAMES na początku użyłeś?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 17:00