|
|
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo
|
|
[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 |
|
|
|
 |
|
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
|
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 | |
 |
|