Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odzyskanie zawartosci bazy w innym kodowaniu.
Forum PHP.pl > Forum > PHP
hao
Witam:

Problem ma się następująco:

Strona www jest zakodowana w utf-8.
Formularz zapisujący dane do bazy danych jest również w utf-8.
Baza danych jest w latin2.

Znaki specjalne (tutaj cyrylica) są więc zapisywane do bazy danych dziwnie; jako pytajniki.
Trochę to dziwne, bo zwykłe polskie litery są ok.

Niestety nie mogę odzyskać tekstu w cyrylicy, która zapisała się jako "?questionmark.gifquestionmark.gif?"

Probowałęm z SET NAMES, ale labo nie trafiłem, albo coś źle robię.
Najdziwniejsze, że dałbym sobie głowę uciąć, że wcześnniej, przy różnich próbach kodowania udało się dobrze odczytać te dane z "?questionmark.gifquestionmark.gif", a potem sobie zmieniłem kodowanie i już mi nie działa sad.gif

Pomocy, dane w bazie są "krytyczne" sad.gif(


I jak zrobić, żeby zapisywać cyrylicę z formularza utp8 do latin2, a potem poprawnie odczytywać? :/
jacekl
Są funkcje iconv() i mb_convert_variables() i - ale nie prościej przekodować bazę?

JL
hao
Na pewno byłoby i prościej i lepiej, jednak nie wiem jak się za to zabrać. Czy można to zrobić z MySQL'a bez pisania wymyślnych skryptów przelatujących całą bazę danych?
jacekl
Najprościej byłoby tak:
1. Zrzuć całą bazę do pliku (mysqldump albo phpMyAdmin)
2. Przekoduj plik na UTF-8 (jeżeli Twój edytor nie ma takiej opcji, to notatnik albo ogonki)
3. Wywal w nim wszystkie wystapienia "CHARACTER SET" i "COLLATE" przy CREATE'ACH (na poziomie tabel oraz pól tekstowych)
4. Na końcu każdego CREATE'a wpisz "CHARACTER SET utf8 COLLATE utf8_polish_ci" (albo utf8_general_ci, jeżeli to nie jest polska strona)
5. Zaimportuj plik (mysql -ulogin -phasło nazwabazy << nazwapliku.sql - lub phpMyAdmin).
6. Gotowe.

Jeżeli skorzystasz z phpMyAdmin, to pamiętaj, żeby na pierwszej stronie zarówno przy eksporcie jak i imporcie wybrać odpowiednie kodowanie.

JL
potreb
Panie, jeżeli chodzi o utf-8 to jedna zasada. Jak masz stronę w utf-8 to i baze miej taką i dodatkowo porównywanie napisów.
Ja mam 2 serwisy z cyrylicą i wszystkie mi się ładnie zapisują.

I sprawdź czy pliki są dobrze zapisane w utf-ie
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.