Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Naprawa polskich znaków
Forum PHP.pl > Forum > Bazy danych > MySQL
8rol
Witam.

Przepisują stronę no nowo i zachodzi konieczność przeniesienia bazy.

Problem występują z kodowaniem polskich znaków.
Wszystkie tabele miały ustawioną metodę porównywania znaków na utf8_general_ci jednak wygląda na to, że przy wykonywaniu połączenia z bazą nie wysyłano zapytania SET NAMES. Myślę, że właśnie to spowodowało, że przeglądając bazę przez phpmyadmin polskie znaki były źle wyświetlane.

Wyeksportowałem zawartość starej bazy do pliku. Następnie stworzyłem nową bazę (wszystkie pola utf8_general_ci) i zaimportowałem (za pomocą phpmyadmin) do niej zawartość starej bazy mając nadzieje, że problem z polskimi znakami zostanie rozwiązany. Okazało się jednak, że nie...

Poczytałem dużo w internecie i postanowiłem skorzystać z programu Gżegżółka. Wybrałem plik ze starą bazą, kodowanie wejściowe pozostałem jako automatyczne, aby sam poprawnie rozpoznał kodowanie, natomiast kodowanie wyjściowe UTF-8.

Operacja ta jednak nie przyniosła skutków i polskie znaki nadal są niepoprawnie wyświetlane. Co ciekawe, Gżegżółka rozpoznała kodowanie wejściowe jako UTF-8.

Znowu zacząłem przeglądać internet i natrafiłem na stronę w której zaprezentowano wygląd polskich znaków w różnych kodowaniach ( http://konfiguracja.c0.pl/plitery.html ). Porównując z wyglądem polskich znaków w mojej starej bazie, ich wygląd zgadza się z tymi znajdującymi się w kolumnie ISO­-8859­-1).

Powróciłem do Gżegżółki ustawiając kodowanie ISO­-8859­-1 jako wejściowe i UTF-8 jak wyjściowe. Po skonwertowaniu "polskie znaki" zostały zmienione, jednak nadal wyglądają niepoprawnie.


Czy ktoś spotkał się już takim problemem i wie w jaki sposób sobie z nim poradzić?
Bardzo proszę o jakąkolwiek radę.

Pozdrawiam.
Mchl
Spróbuj

Notepad++
Format -> Encode in ANSI
Format -> Convert to UTF8 without BOM
8rol
Niestety nie pomogło.

Przykładowo litera ź, która wyglądała tak: ¼ teraz wygląda tak: ÂĽ (przed skonwertowanie do UTF-8 wyglądała tak samo).


Jednak 'pomógł' za chęć pomocy,
Pozdrawiam.
krzysztof_kf
Widocznie już od samego początku kodowanie całej bazy miałeś źle ustawione najlepsze kodowanie dla wyświetlania wszystkich prawidłowo znaków utf-8 bo inaczej będziesz miał takie problemy jak pokazałeś już nic z tym nie zrobisz jak ręczne edytowanie w bazie danych na prawidłowe znaki .
gigzorr
mysql = query("SET NAMES 'utf8'"); Pod zapytaniem to wstaw.

spróbuj tego.
Mchl
http://en.wikipedia.org/wiki/Iconv
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.