phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

FAQFAQ - PIERWSZA POMOC!!  regulaminREGULAMIN  SzukajSZUKAJ  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload  katalog Forów DyskusyjnychKatalog Forów   FAQ Video tutoriale

Poprzedni temat «» Następny temat
[Rozwi?zanie] Kodowanie bazy danych na linuxpl.com - krzaki
Autor Wiadomość
Spajda


Posty: 14
Wysłany: 11-05-2009, 00:56   [Rozwiązanie] Kodowanie bazy danych na linuxpl.com - krzaki

Witam serdecznie.

Mam dosyć niebanalny problem z przenoszeniem swojego forum na inny serwer dotyczący kodowania znaków polskich.

Stary serwer ledwo zipie i próbuję przenieść całe dane na inny serwer.

Objawy:
- Na nowym serwerze po wgraniu bazy danych wyświetlają się krzaczki: www.rainbow.spajda.pl/forum1/

Dane:
- Stary serwer jest administrowany przeze mnie, więc mam nad nim całkowitą władzę. Nawet stoi teraz u mnie w domu.
- Na starym serwerze Mysql jest w wersji 4.1.14 , phpmyadmin 2.8.0.3
- Stare forum ma System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
- Stare forum ma System porównań dla połączenia MySQL: utf8-unicode_ci

Nowe forum:
- Wersja klienta MySQL: 5.1.32 , phpmyadmin 3.1.4
- Kodowanie napisów dla MySQL: UTF-8 Unicode (utf8)
- System porównań dla połączenia MySQL: - ustawiam jaki chcę, ale w tym przypadku taki sam jak na starym - utf8-unicode_ci

BAZA:
- Baza danych ma sytem porównań na: latin1_swedish_ci

OPERACJE:
- Przenoszenie poprzez import bazy z zaznaczonym kodowaniem pliku o różnych parametrach, utf8, latin1, latin2, nie daje rezultatu - krzaki występują.
- postępowanie wg tego poradnika: http://www.przemo.org/php...pic.php?t=17648 oraz http://www.przemo.org/php...pic.php?t=62233 nie skutkuje pozytywnymi wynikami. Modyfikowałem nawet ręcznie w "notatniku" bazę z krzaków i nic. Na serwerze w bazie są normalne znaki.
- Na nowym serwerze mam już kilka baz danych z różnymi opcjami i żadna nie jest prawidłowa.

Zrobiłem również konwersję na phpbb3 i umieściłem forum na nowym serwerze - krzaki nadal wyskakują.
http://rainbow.spajda.pl/forum

Jeśli wiecie z której strony to ugryźć - będę wdzięczny za wszelakie sugestie.
Próbowałem wielu rzeczy jednak bezskutecznie.


Pozdrawiam,

Spajda.

Edit:
- W bazie są poprawne ogonki ąęć... w postach.
- Przy wpisywaniu na shoutboxie " ąćęłóśżź " w bazie danych pojawia się: " ąćęłóśşź " , a na shoucie wyświetla: " Ä�Ä�Ä�Ĺ�ĂłĹ�şź "
- Konto nowego serwera mam na linuxpl.com (jeśli to pomoże). Serwer Utf8, metoda porównań latin2_general_ci

Brak mi już sił i pomysłów co dalej robić.. Proszę o pomoc...


Edit 2: Dziwy nad dziwami (nie rozumiem tego zupełnie):
- Posta wpisuję " mieć więcej źródełek "
- W bazie pojawia się: " mieć wiÄ™cej ĹşrĂłdeĹ‚ek "
- WYŚWIETLA POSTA NORMALNIE, widoczne są ogonki i jest super.
- Natomiast w starych postach w bazie są normalne znaki, a na forum wyświetla pytajniki.
NIE KAPUJĘ :(
Zamotałem się i mój wniosek wstępny to:
- kodowanie bazy musi być latin1_swedish_ci, w bazie muszą być krzaki, metoda porównań na serwerze to latin2_general_ci ?
_________________
One shoot = One kill :)
Ostatnio zmieniony przez Spajda 19-05-2009, 11:40, w całości zmieniany 1 raz  
 
     
Gadatliwa Kasia 

   
CyberDuck
[Usunięty]

Wysłany: 12-05-2009, 20:42   

Ustaw na Latin 2 zamiast Unicode. I porownanie tez na Latin 2 general Ci
i wgraj baze na nowo. Powinno pomoc. Jesli nie to tez dodaj do config.php
zaraz po polaczeniu sie do bazy :
Kod:
mysql_query ("SET NAMES latin2");

Jesli masz dostep do starej bazy i te zabiegi nie pomoga to wygeneruj kopie
ale zgodna z starym standardem, albo tak zeby dalo sie wgrac dane do nowej
bazy bez zmiany kodowania jakie ustawisz przed wgraniem do nowej bazy.
 
     
Spajda


Posty: 14
Wysłany: 12-05-2009, 22:43   

Dzięki za info.

Operacje zakończyły się fiaskiem.
Import bazy wzorowy, w bazie są prawidłowe ogonki.
Wyświetlanie na forum nadal jest całe w pytajnikach.
Dodawanie postów lub na shoucie skutkuje w bazie i na forum krzaczkami (nie pytajnikami).

Jestem bezradny, nie wiem jak poustawiać te kodowania, żeby to dobrze działało...
Na starym forum kodowanie to latin1_swedish_ci.

CyberDuck, jeśli kumasz te kodowania proszę podpowiedz mi jak to mam odpalić, żeby działało...

Osobiście próbowałem już ze 20 różnych kombinacji importowania bazy z "kopii zapasowej" na nowy serwer i żadne nie działa prawidłowo.

W którym kierunku powinienem się udać ?
_________________
One shoot = One kill :)
 
     
CyberDuck
[Usunięty]

Wysłany: 12-05-2009, 23:53   

No ja zwykle staram sie ustawic takie jakie jest w poprzedniej bazie danych.
Mozesz sprobowac UTF8 ...
Wazne zeby ustawic kodowanie przed importem bazy.
Sprawdz po imporcie czy trzyma Ci kodowanie bo w zapisie backupu bazy
danych tez sa te ustawienia i jesli sa tam dodane to baza Ci sie przestawia
mimo wczesniejszych ustawien.
Jestem pewien, ze w przypadku forum jakas kombinacja zadziala, ale
ostatecznie probuj jedynie :
1. latin 1 swidish ci lub general ci
2. latin 2 swidish ci lub general ci
3. UTF8
Inne zupelnie Ci sie nieprzydadza. Do importu bazy stosuje BigDumps.
Poprostu sprawdzil mi sie i nie mam kompletnie zadnego problemu z duzymi nawet
bazami.
W ostatecznosci mozesz sprobowac sobie napisac skrypt, ktory Ci pozamienia
krzaczki na poprawne w bazie. Ja robilem cos takiego ostatnio z nowa strona
jaka napisalem, ale warunek byl taki zeby zachowac baze danych poprzednia.
Ponad 25000 wpisow sobie stronka przetrawila przez 2 dni :) , ale w koncu mam
pozadek. Jesli nie dasz rady to lepsze takie rozwiazanie niz pozegnac sie z
poprawnymi znakami na forum.
Przy takim rozwiazaniu jesli juz beda zapisane w bazie danych krzaczki to postaraj sie
na poczatku zeby to byly krzaczki, ktore na stale zamieniaja znaki diakrytyczne na
jakies inne ...
Np +- na ą , Ä na ź
Chodzi o to, ze tam gdzie wszedzie ma wystepowac ą to niech to bedzie zawsze staly
znak. Wtedy z latwoscia pozamieniasz je na takie jakie trzeba. W ostatecznosci jesli
nie uda Ci sie zapisac ąśćę ... to mozesz zastosowac encje.

Ja mialem na wspomnianej stronie jeszcze inny problem z kodowaniem :)
Na stronie mialem dwa rozne kodowania i poki nieruszylem strony to znaki byly
wyswietlane poprawnie, a kiedy zaczolem przenosic i "tlumaczyc" kody znakow
to okazalo sie ze pewna czesc strony jest "tlumaczona" poprawnie, a pozostala nie, ale
doszedlem do tego, ze to bylo wynikiem dwukrotnego przenoszenia sie strony w ciagu
jej calej kariery i na kazdym z serwerow bylo ustawione inne kodowanie.

Mozesz jeszcze sprobowac dojsc do porozumienia z administratorem serwera i poprosic
o instalke liberki iconv(); albo sprawdz bo moze to juz masz na serwie :
http://pl2.php.net/iconv
 
     
Spajda


Posty: 14
Wysłany: 13-05-2009, 23:07   

Próbowałem wszelakich dostępnych kombinacji i nadal lipa.
Wszedłem na zmienne NOWEGO serwera mysql:

Kod:

character set client      utf8
(Wartość globalna)     latin2
character set connection     utf8
(Wartość globalna)     latin2
character set database     latin2
character set filesystem     binary
character set results     utf8
(Wartość globalna)     latin2
character set server     latin2
character set system     utf8
character sets dir     /usr/local/mysql/share/mysql/charsets/
collation connection     utf8_unicode_ci
(Wartość globalna)     latin2_general_ci
collation database     latin2_general_ci
collation server     latin2_general_ci




Udało mi się sczytać stare ustawienia serwera:

Kod:


haracter set client      utf8
(Wartość globalna)     latin1
character set connection     utf8
(Wartość globalna)     latin1
character set database     latin1
character set results     utf8
(Wartość globalna)     latin1
character set server     latin1
character set system     utf8
character sets dir     /usr/share/mysql/charsets/
collation connection     utf8_unicode_ci
(Wartość globalna)     latin1_swedish_ci
collation database     latin1_swedish_ci
collation server     latin1_swedish_ci
concurrent insert     ON



Prośba: jak mam to pozmieniać, żeby było dobrze, bo już próbowałem wszystkich wersji i nic :/
_________________
One shoot = One kill :)
 
     
CyberDuck
[Usunięty]

Wysłany: 13-05-2009, 23:34   

No to pozostalo Ci chyba napisac skrypt, ktory bedzie sukcesywnie
podmieniac znaki :) :
- phpbb_topics
- phpbb_posts_text
- phpbb_words - zreszta te tabele mozna pozniej odbudowac z PA
- phpbb_ranks
i to chyba wszystkie tabele, ktore musisz pozmieniac.
Wystarczy przejdzec zawartosc i tam gdzie znajdziesz nazwy polskie to takie
trzeba pozamieniac.
 
     
Spajda


Posty: 14
Wysłany: 14-05-2009, 00:24   

No bez sensu...
Nie da się tego zrobić raz a porządnie ?
Musi przecież być jakieś rozwiązanie.....
_________________
One shoot = One kill :)
 
     
CyberDuck
[Usunięty]

Wysłany: 14-05-2009, 08:26   

A ile sie juz z tym meczysz ?
Mialbys juz po problemie ... ja innych sposobow nie znam.
A i jeszcze jedno ....
To tak na przyszlosc bo teraz przeszedles ze starszej wersji mysql na nowsza :) i
baza sie wgrala, ale wiekszy problem bedzie w odwrotna strone.
Ja sobie juz z tym poradzilem, ale Ty za nim to zrobisz pewnie zapomnisz nawet, ze
pisales ten temat.
 
     
Spajda


Posty: 14
Wysłany: 19-05-2009, 11:39   

Problem rozwiązany następująco:

1. Baza wczytana standardowo przez phpmyadmina z kodowaniem latin2_general_ci
Próbowałem też zwykłego DBLOADERa i także działa
2. Na serwerze jest UTF8 ale metoda porównania to latin2_general_ci
3. DO pliku config.php dodałem zaraz za <?php linijkę:
Kod:

header('Content-Type: text/html; charset=iso-8859-2');


Teraz wyświetla mi się wszystko prawidłowo i w bazie dodają się zwykłe litery: ąćłóń itd.

Pozdrawiam, może to komuś w przyszłości pomoże....
CyberDuck - nie musiałem konwertować i kombinować (na szczęście), chociaż teraz w bazie mam 98% normaluch literek i przez 2 tygodnie pisania postów do bazy mi się dodały krzaki, więc muszę ją "odkrzaczyć".
_________________
One shoot = One kill :)
 
     
CyberDuck
[Usunięty]

Wysłany: 19-05-2009, 19:09   

No tak tylko pisalismy o tym wczesniej ...
A konwertowanie to byl pozniejszy wynik rozmowy.
W kazdym razie fajnie, ze dziala :)

Spajda napisał/a:
3. DO pliku config.php dodałem zaraz za <?php linijkę:
Kod:
header('Content-Type: text/html; charset=iso-8859-2');

Sprobuj dodac to gdzies wczesniej. Do jakiegos modulu header, albo gdzies.
Chociaz ... jesli dziala to ok.
 
     
Gadatliwa Kasia 

   
Spajda


Posty: 14
Wysłany: 19-05-2009, 19:42   

Niestety po wielu próbach konwersji i naprawy bazy nie udało mi się poprawnie załadować skrzaczonej bazy.
Usunąłem z bazy wszelakie krzaki, zapisałem w utf-8, zaimportowałem w utf8,binary,ascii,latin1, latin2 i niestety na serwerze są krzaki w bazie.
Wracam do punktu wyjścia :/
_________________
One shoot = One kill :)
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Kopiowanie wszelkich treści zawartych na forum, modyfikacji oraz instrukcji bez zgody administracji i autorów tematów/postów zabronione!

Powered by phpBB modified by Przemo © 2003 phpBB
Strona wygenerowana w 0,2 sekundy. Zapytań do SQL: 11
Polecane serwisy

Najlepsze oprogramowanie do prowadzenia sklepu internetowegoNajlepszy program do sklepu firmowany przez Przem'a

Sklep z gadżetami

serwis laptopów

phpbb

Design Cart - Tworzenie sklepu internetowego

iRonin.IT

• Zamów reklamę