![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 12.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
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 "? ![]() ![]() 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 "? ![]() ![]() ![]() Pomocy, dane w bazie są "krytyczne" ![]() I jak zrobić, żeby zapisywać cyrylicę z formularza utp8 do latin2, a potem poprawnie odczytywać? :/ Ten post edytował hao 15.05.2008, 00:30:01 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 7 Dołączył: 4.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Są funkcje iconv() i mb_convert_variables() i - ale nie prościej przekodować bazę?
JL |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 106 Pomógł: 0 Dołączył: 12.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
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?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 7 Dołączył: 4.05.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
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 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:01 |