Raz jeszcze kodowanie znaków - znaki zapytania na nowym serwerze
Wyniki 1 do 7 z 7

Temat: Raz jeszcze kodowanie znaków - znaki zapytania na nowym serwerze

  1. #1
    Nowicjusz
    Dołączył
    04-06-2006
    Wpisy
    20
    Punkty
    10

    Raz jeszcze kodowanie znaków - znaki zapytania na nowym serwerze

    Wiem, że tematów takich było już dużo. Przejrzałem wszystkie (albo prawie wszystkie), ale pomimo różnych prób moich, jak również admina serwera, nie udało mi się do tej pory zlikwidować znaków zapytania wyświetlających się zamiast polskich liter. Kończy mi się okres próbny, na który wykupiłem serwer i chciałbym ostatecznie sprawdzić, czy da się z tym coś zrobić, czy po prostu tutaj to nie będzie działać.


    Po kolei, na starym serwerze były takie ustawienia:

    System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
    System porównań dla połączenia MySQL: utf8_unicode_ci
    Metoda porównywania napisów dla tabel: latin1_swedish_ci

    Bazę eksportowałem z poziomu phpmyadmin (chciałem spróbować innym programem, ale dowiedziałem się od admina tego serwera, że nie jest możliwa obsługa tej bazy programami zewnętrznymi). Tak samo importowałem na nowy serwer próbując różnych ustawień przy imporcie. Ostatecznie zostawiłem utf8, ale to też nic nie daje.

    Obecnie ustawienia na nowym serwerze są analogiczne, jak na starym.


    Jednocześnie próbowałem zmienić metodę porównywania napisów z latin1 na latin2_general_ci, ale to również nic nie dało. Zarówno jak robiłem to na starym serwerze i potem importowałem, jak i jeśli próbowałem już wszystko robić na nowym. Zastanawia mnie też, czy wystarczy zmiana dla całej tabeli (poprzez operacje), czy trzeba dodatkowo zmieniać osobno dla każdego pola tabeli? (poprzez jego zaznaczenie i opcję - Zmień) Próbowałem jednak tak i tak (chociaż drugą metodą jedynie dla wybranych tabel, bo jest z tym bardzo dużo roboty), ale również nic się nie zmieniło.



    Linia dotycząca kodowania znaków w index.php jest następująca:

    <meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />

    Pytałem już o to wcześniej i podobno jest prawidłowa. Podobnie jeśli chodzi o templatkę sprawdzałem wcześniej wszystko i ustawienia są prawidłowe.


    Polskie napisy nie pojawiają się zarówno w starych artykułach, jak i nowo dodanych już na nowym serwerze.



    Pisałem w tej sprawie do admina nowego serwera. Listów było kilka, ale najważniejsze instrukcję przedstawię poniżej:

    Kodowanie moze Pan zmienic poleceniem iconv pod Linuxem. Niestety, nie
    wiem czym mozna je zmienic pod Windowsem. Najprosciej byloby gdyby
    mial Pan mozliwosc na starym serwerze wykonac zrzut z takim kodowaniem
    jakie maja tabele tzn. jezeli tabele maja kodowanie latin1 a dane byly
    trzymane np. w utf8 to zrobienie zrzutu z kodowaniem latin1 spowoduje,
    ze bedzie mial Pan dane w utf8. Jezeli wykonuje Pan zrzut z innym
    kodowaniem to dane sa blednie przekodowywane z kodowania tabel do
    kodowania klient i wychodza takie krzaczki. Prosze moze poprosic
    administratora starego serwera aby wykonal Panu poprawny zrzut. W
    innym wypadku trzeba bedzie wykonac operacje odwrotna tzn. jezeli
    zrzut byl wykonany z kodowaniem np. utf8 to przekodowanie z utf8 do
    kodowania tabel np. latin1 powinno dac dane w takim kodowaniu jak byly
    w bazie (zakladam, ze w bazie mial Pan poprawne kodowanie). Nie zawsze
    takie przekonwertowanie jest mozliwe i wtedy jedynym ratunkiem jest
    wykonanie poprawnego zrzutu.

    Co w takim razie powinienem zrobić? Próbowałem już chyba wszystkie możliwe kombinacje exportu i importu i jedyna różnica, to że czasami są tylko znaki zapytania, a czasami dochodzą jeszcze dodatkowe krzaczki. Polskich liter nie udało mi się uzyskać. Jedynie "ó" wyświetla się prawidłowo. Czy problemem mogą być jakieś ustawienia na starym serwerze (www.ovh.org), które może zrobiły coś z kodowaniem tak, że nie da się już tego naprawić, czy może coś na nowym i admin innego by sobie poradził (teraz próbowałem na www.nazwa.pl , ale zastanawiałem się także na home.pl i progreso, więc mogę ewentualnie się tam przenieść. Chociaż niezbyt chce mi się instalować Joomlę jeszcze raz od podstaw..).

    Mógłby mi ktoś z tym pomóc, męczę się już prawie dwa tygodnie i musiałem przez to wstrzymać pracę nad stroną, którą chciałem prowadzić regularnie..

  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
    Senior zwiastun awatar
    Dołączył
    20-09-2005
    Wpisy
    27 315
    Punkty
    1142

    Domyślny

    Najprostszy sposób poradzenia sobie z takim problemem:

    1. Wyeksportuj odrębnie strukturę bazy danych i dane (dane ewentualnie w częściach, jeśli jest ich sporo)
    2. Wczytaj dane do edytora rozpoznającego kodowanie lub posiadającego funkcję zmiany kodowania (np. Pajączek)
    3. Wydaj polecenie: Zapisuj w kodowaniu => wybrane nowe kodowanie

    Bywa, że i to nie poradzi.
    Pozostaje wówczas metoda ręczna, niekiedy czasochłonna, ale na pewno starczy Ci jednego (i to niecałego dnia, a nie dwóch tygodni)

    1. Przejrzyj zrzut danych. Wyszukaj wszystkie ciągi znaków odpowiadające polskim literkom. Przyjrzyj się im dokladnie (najlepiej wypisz wszystkie).
    2. Ustal rozważnie rozsądną kolejność zamiany
    3. Skorzystaj z narzędzia Znajdź i zamień w edytorze tekstu i zamień wszystkie zakodowane znaki na polskie odpowiedniki. Raczej nie korzystaj z funkcji Zamień wszystkie. Więcej czasu, ale mniej błędów. Zresztą zauważysz, że niekiedy można skorzystać z Zamień wszystkie, a niekiedy nie.
    4. Po tych poprawkach zapisz zrzut w wybranym potrzebnym Ci kodowaniu
    (ja zapisuję w ISO-8859-2, a do importu korzystam ze skryptu bigdump)
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  4. #3
    Nowicjusz
    Dołączył
    04-06-2006
    Wpisy
    20
    Punkty
    10

    Domyślny

    Dziękuję za odpowiedź.

    Zacznę od tej prostszej metody, mam nadzieję, że druga nie będzie konieczna.



    Cytat Wysłane przez zwiastun
    Najprostszy sposób poradzenia sobie z takim problemem:

    1. Wyeksportuj odrębnie strukturę bazy danych i dane (dane ewentualnie w częściach, jeśli jest ich sporo)
    Nie jestem pewien, czy dobrze, to rozumiem, więc uściślę - mam to zrobić w taki sposób:

    1) Strukturę baz danych - czyli eksport ze 'strony głównej' panelu phpmyadmin

    2) Następnie dane już normalnie poprzez wejście do tabeli i funkcję eksport?

    (cała baza zajmuje na razie ok.1MB, po spakowania ok. 200KB, więc na szczęście aż tak dużo tego jeszcze nie ma)


    2. Wczytaj dane do edytora rozpoznającego kodowanie lub posiadającego funkcję zmiany kodowania (np. Pajączek)
    3. Wydaj polecenie: Zapisuj w kodowaniu => wybrane nowe kodowanie
    Jeszcze nie sprawdzałem, bo nie mam tego programu (poszukam jakiejś wersji demonstracyjnej wieczorem), ale czy wystarczy w tym celu otworzyć ten plik z danymi z drugiego podpuntku przed chwilą, a potem zapisać go w nowy sposób?

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

    Domyślny

    1. Gdy eksportujesz, to możesz eksportować:
    a) cała bazę,
    b) tylko struktrę
    c) tylko dane
    ... i jest tam parę opcji jeszcze

    2. Nie musi być Pajączek - nVu, Notepad-plus, Zajaczek - pierwsze trzy z brzegu i bezpłatne (Pajączek Lite też!)
    Korzystaj i ciesz się!
    ===============
    Zwiastun
    Biblioteka Elektronicznej Dokumentacji Joomla!

  6. #5
    Nowicjusz
    Dołączył
    04-06-2006
    Wpisy
    20
    Punkty
    10

    Domyślny

    Cytat Wysłane przez zwiastun
    1. Gdy eksportujesz, to możesz eksportować:
    a) cała bazę,
    b) tylko struktrę
    c) tylko dane
    ... i jest tam parę opcji jeszcze
    Rzeczywiście tak jest. Nie zwróciłem na to wcześniej uwagi.

    Zrobiłem więc tak, że najpierwo odznaczyłem dane i zostawiłem samą strukturę, którą exportowałem, a następnie analogicznie zrobiłem z danymi. Otrzymałem dwa pliki o takiej samej nazwie, ale umieściłem je w osobnych katalogach.


    2. Nie musi być Pajączek - nVu, Notepad-plus, Zajaczek - pierwsze trzy z brzegu i bezpłatne (Pajączek Lite też!)
    Ściągnąłem jednak pajączka.

    Otworzyłem w nim ten plik z danymi, następnie z Menu Pisownia wybrałem zapisuj w kodowaniu. Które kodowanie powinienem tutaj ustawić: ISO-8859-2 czy jakiś UNICODE?

    Następnie nie można już zapisać zmian w pliku tylko trzeba zapisać go osobno (Zapisz jako). Tutaj można wybrać jako dokumenty HTML, PHP, ASP, oraz jakieś z obsługa schematów kolorowania. No i inne pliki. Którą opcję należałoby wybrać?


    I na końcu przy imporcie. Mam osobno strukturę i osobno dane. Rozumiem, że muszę i to i to zaimportować osobno (najpierw zapewne strukturę)?

  7. #6
    Przeglądacz
    Dołączył
    08-03-2006
    Wpisy
    99
    Punkty
    11

    Domyślny

    Zastanawiam się czy nie lepiej zmienić serwer (też szukam jakiegoś) na którym jest inny system kodowania znaków dla MySQL niż UTF-8 Unicode (utf8) tak aby przenieść portal wraz z bazą danych z serwera lokalnego na serwer w sieci bez kombinacji dekodowania na UTF-8.

    Ja działam na razie na localhoscie bo nie zawsze mam dostęp do neta (dużo podróżuję), w chwilach wolnych zmieniam i udoskonalam swój portal.

    Jeżeli raz go wrzucę na jakiś serwer a później zmienię (na localhoście) w nim kilka rzeczy to czy nie będę musiał ponownie dekodować danych ????

    I tak w kółko!!!!!!

    Jeżeli się mylę to proszę specjalistów o sprostowanie


    pozdro "Początkujący"

  8. #7
    Nowicjusz
    Dołączył
    04-06-2006
    Wpisy
    20
    Punkty
    10

    Domyślny

    Cytat Wysłane przez zwiastun
    Najprostszy sposób poradzenia sobie z takim problemem:

    1. Wyeksportuj odrębnie strukturę bazy danych i dane (dane ewentualnie w częściach, jeśli jest ich sporo)
    2. Wczytaj dane do edytora rozpoznającego kodowanie lub posiadającego funkcję zmiany kodowania (np. Pajączek)
    3. Wydaj polecenie: Zapisuj w kodowaniu => wybrane nowe kodowanie
    Wrócę jeszcze raz do tego pytania.

    Jak już ustawię z Pajączku to zapisywanie w odpowiednim kodowaniu (daje ISO-8859-2), to co mam potem zrobić - zapisać plik osobno (bo nie da się jedynie zapisać zmian) z rozszerzeniem sql?

    I co wtedy powinno się stać, żebym wiedział, że zamiana coś dała?

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
  •