Konwersja bazy danych do UTF-8
Wyniki 1 do 10 z 10

Temat: Konwersja bazy danych do UTF-8

  1. #1
    Nowicjusz
    Dołączył
    03-06-2013
    Wpisy
    16
    Punkty
    2

    Domyślny Konwersja bazy danych do UTF-8

    Witam.

    Na stronie pod adresem http://www.zsrkm.pl/ pojawiają się dziwne znaczki zamiast polskich znaków. Domyślam się, że chodzi o kodowanie. Na stronie jest ustawione utf-8, w phpmyadmin baza też ma ustawione utf-8 ale nawet podglądając bazę widać, że znaki się nie zgadzają. Próbowałem skryptu konwertującego na utf-8 i zmieniło to tyle, że pojawiają się inne krzaczki Zapewne mój problem jest banalny do rozwiązania, jednak proszę o wskazówki. Z góry dzięki.

  2. Pani Reklamowa
    Pani Reklamowa jest aktywna
    Avatar Panny Google

    Dołączył
    19-08-2010
    Skąd
    Internet
    Postów
    milion
    Pochwał
    setki
  3. #2
    Wiarus Jdwind awatar
    Dołączył
    21-08-2007
    Skąd
    Stalowa Wola
    Wpisy
    1 692
    Punkty
    132

    Domyślny

    Najprościej: wyeksportuj bazę do pliku w phpmyadmin, w edytorze konwersja na utf8 bez BOM, usunięcie obecnej bazy w PMA i import z pliku.
    wiki.joomla.pl - odpowiedzi na Twoje pytania!
    >> MIEJSCE NA TWOJĄ REKLAMĘ << - dokonaj dowolnej (min. 50zł) wpłaty na rzecz PCJ i skontaktuj się ze mną w celu odebrania gratulacji!

  4. #3
    Wyjadacz souacz awatar
    Dołączył
    30-07-2009
    Skąd
    Poznań
    Wpisy
    714
    Punkty
    77

    Domyślny

    akeeba admin tools, w darmowej wersji ma zmianę kodowania.
    c'est la żizń...

  5. #4
    Nowicjusz
    Dołączył
    03-06-2013
    Wpisy
    16
    Punkty
    2

    Domyślny

    @Jdwind już tak robiłem z notepad++, nic nie pomagało
    @souacz zmiana kodowania nic nie da, żeby nie było zainstalowałem Akeeba Admin Tools i sprawdziłem. W bazie nawet jest wpisane że kodowanie utf-8 mimo tego dalej są krzaczki. Niby można otworzyć notepadem bazę i używając find&replace zmienić wszystkie znaki na polskie tylko że jest jeden znaczek "zastępujący" zarówno ą i ę.

  6. #5
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    Cytat Wysłane przez Anterith Zobacz wiadomość
    Zapewne mój problem jest banalny do rozwiązania,
    Uwielbiam takie stwierdzenia: banalny problem do rozwiązania, prosta witryna do wykonania, niewielkie poprawki...

    Z przeglądu strony wynika, że póki co masz jeszcze wszystkie znaki w bazie zachowane.

    1. Wyeksportuj bazę danych do sql.
    2. Odczytaj w edytorze rozpoznającym kodowanie (np. Notepad++)
    Jeśli zamiast "dziwnych znaczków" będą znaki zapytania, to poproś administratora serwera, żeby wyeksportował bazę danych bezpośrednio z MySQL, z wiersza poleceń.
    3. Odszukuj uważnie każdy ciąg znaków odpowiadający polskim literkom i zamieniaj go na właściwy (Znajdź /Zamień)

    Przed zapisaniem bazy sprawdź w deklaracjach tabel w sql informacje o kodowaniu całych tabel i o kodowaniu poszczególnych pól (metodzie porównywania napisów).
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  7. #6
    Nowicjusz
    Dołączył
    03-06-2013
    Wpisy
    16
    Punkty
    2

    Domyślny

    @zwiastun I właśnie na tym polega problem, że próbowałem w ten sposób i nie do końca jest to najlepsze rozwiązanie (napisałem o tym w drugim poście). Może wytłumaczę jeszcze raz w czym rzecz, otóż zarówno za literkę ą jak i ę odpowiada ten sam "krzaczek", czyli mamy "Zawody międzyszkolne" oraz "Dokumenty wewnątrzszkolne". Jak widać miejscu gdzie powinno być ą i ę jest ten sam znak, więc gdy dam znajdź i zamień np. z Ä na ą wyjdzie mi baboch taki jak "Zawody mią™dzyszkolne".

  8. #7
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    Nie mam przed sobą pliku. Nie wiem też, jakie operacje były wykonywane wcześniej.
    Nawet jeśli jest tak, jak piszesz i nie masz żadnej innej wersji sprzed operacji, które namieszały, to metodą Znajdź/Zamień i uważnym zamienianiem osiągniesz efekt. Automat za Ciebie tego nie zrobi, bo nie rozpozna, gdzie i co ma być. To samo może dotyczyć wielkich i małych liter (uważaj na właściwe zaznaczenie opcji)
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  9. #8
    Nowicjusz
    Dołączył
    03-06-2013
    Wpisy
    16
    Punkty
    2

    Domyślny

    @zwiastun

    Pokażę to tak - chyba nie chcesz, żebym Ci całą bazę wysłał

    mamy taką linijkę:
    (37, 8, 38, 47, 2, 'com_content.category.10', 'Plany zajęć', ''),

    Trochę lipa, jak zamienię Ä na ę, to wyjdzie "Plany zajęę". Pomyślałem więc, że ustawię "Encode in ANSI" w N++ wtedy jest już jakaś różnica - wychodzi nam "'Plany zajęć'". Wtedy można wymienić ę na ę oraz ć na ć. Problem się pojawia gdy chcę przestawić kodowanie spowrotem na utf-8. Pojawia się wtedy takie coś: asd.png - czego już nie można wymienić na normalne znaki. Wniosek z tego taki, że jednak jest rozróżnienie znaków, lecz jeśli w notepad++ jest ustawione wyświetlanie jako utf-8 to niektóre znaki traktuje jako takie same przez co nie można find/replace użyć bo wyjdą takie babochy jak "zajęę", z drugiej jednak strony jak się dokopię do tych różnic to nie mogę z tym nic zrobić.

    Dlatego właśnie piszę tutaj, żeby nie było to trochę nad tematem przysiedziałem i postowanie na forum traktuję jako ostateczność Dodam jeszcze, że ręczne poprawianie każdego wyrazu nie wchodzi w rachubę bo jest to za dużo, oraz to, że baza jest taka, jaką dostałem więc nie mam niestety wpływu na to, jeśli coś przepadło.

  10. #9
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    Jak widzisz, jest jednak jakaś różnica między znakami.
    Robisz co trzeba, potem tworzysz nowy plik, ustawiasz w nowym pliku odpowiednie kodowanie, kopiujesz do niego poprawioną wersję i zapisujesz. Wszystko. Jeszcze raz przypominam o odpowiednim ustawieniu opcji uwzględniania wielkości znaków. Tak czy owak musisz obserwować, czy zamiana jest poprawna.
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  11. #10
    Nowicjusz
    Dołączył
    03-06-2013
    Wpisy
    16
    Punkty
    2

    Domyślny

    Ok, dzięki. Wszystko fajnie wyszło. Pojawia się kolejny problem, mianowicie po zaimportowaniu bazy na serwer dalej są krzaki i gdy przez phpmysql podglądam bazę wygląda tak, jakbym nic w niej nie zmieniał. Testowo importowałem bazę na localu i było ok. Podejrzewam, że to może mieć coś wspólnego z opcją "Sortowanie połączenie z serwerem" ustawioną na serwerze na utf8mb4_general_ci gdy na localu mam utf8_general_ci. Niestety nie mam jak tego sprawdzić ponieważ genialny host klienta ma problemy z takimi opcjami (gdy przestawiam tą wartość to nic się nie dzieje), oraz z importem baz danych (zawiesza się całe phpmyadmin i trzeba do nich pisać maila, żeby zaimportowali bazę za mnie).

Podobne tematy

  1. Były przenosiny i konwersja iso->utf-8- prawie działa, ale...
    przez lubicz na forum Instalacje (Joomla!, składników)
    Odpowiedzi: 0
    Ostatni post/autor: 04-07-2008, 18:04
  2. konwersja z iso ()europ. srodk do utf strony w php
    przez dark_sand na forum Różne
    Odpowiedzi: 1
    Ostatni post/autor: 11-03-2008, 19:11
  3. Konwersja bazy danych na utf8 (bez phpmyadmin)
    przez KrzysieQ na forum Administracja Joomla!
    Odpowiedzi: 1
    Ostatni post/autor: 19-11-2007, 23:07
  4. YANC - konwersja ISO na UTF - problem
    przez pz103 na forum Administracja składnikami
    Odpowiedzi: 2
    Ostatni post/autor: 28-02-2007, 16:21

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •