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
Kodowanie bazy / krzaczki zamiast polskich liter
Autor Wiadomość
chelloPL



Pomógł: 413 razy
Posty: 2545
Wysłany: 31-10-2005, 20:48   Kodowanie bazy / krzaczki zamiast polskich liter

ZANIM napiszesz w tym temacie następny post, przeczytaj dokładnie WSZYSTKO co poniżej napisałem.
Poniższy post podzielony jest na 3 działy. 1. Opisuję jak (w możliwie najbezpieczniejszy i najmniej problemowy) sposób wykonywać backup bazy. 2. Jak prawidłowo przywrócić wykonany wcześniej backup. 3. Jakie poprawki wprowadzić do modułu kopii zapasowej, aby w 100% odtworzyć bazę. Jeśli przenosisz bazę danych pomiędzy serwerami, przeczytaj również temat w FAQ: Jak przenieść bazę forum z serwera na serwer.
  1. Jak prawidłowo wykonać kopię bazy:
    1. Przy użyciu wbudowanej w forum funkcji backupu (znajdującej się w PA -> SQL -> Kopia zapasowa) * Gdzie należy opcji szukać - już podałem. Wykonanie backupu sprowadza się do kliknięcia "Wykonaj kopię teraz" (polecam odznaczyć "Kopiuj zawartość tabel search") * Plik z backupem został umieszczony w katalogu /db/db_backup/
    2. Przy użyciu phpMyAdmin (opis w oparciu o phpMyAdmin 2.6.4) * Zakładam, że każdy ma dostęp do phpMyAdmina (instalacji i konfiguracji tego programu nie mam zamiaru opisywać!) * Uruchamiamy phpMyAdmina * W oknie po lewej stronie wybieramy naszą bazę (którą chcemy zabezpieczyć). Dla przykładu konkretnego niech nazywa się ona Gość. UWAGA: niektórzy administratorzy zabraniają zmiany bazy danych i jest Twoja baza otwierana automatycznie! * W prawym oknie pojawia się (na samej górze) Eksport * Zaznaczamy wszystkie tabele * Wybieramy następujące "Opcje SQL":
        Obejmij eksport transakcją Dodaj DROP TABLE Dodaj IF NOT EXISTS Kompatybilność eksportu SQL: MYSQL40 (najważniejsza opcja!) Zapisz jako plik
  2. Jak prawidłowo odtworzyć kopię bazy
    1. Przy pomocy phpMyAdmina (kopię wykonaliśmy również z phpMyAdmina i zaznaczyliśmy kompatybilność eksportu MYSQL40 :!: ) Dodanie opcji MYSQL40 zapobiega dopisywaniu
      Kod:
      DEFAULT CHARSET=latin1 AUTO_INCREMENT=1
      * Wybieramy w phpMyAdminie naszą bazę. * Na górze wybieramy SQL (interesuje nas na stronie tylko ramka: "lub Lokalizacja pliku tekstowego") * Klikamy "Przeglądaj" i wskazujemy nasz plik z kopią * Najważniejsze: z rozwijanej listy: "Zestaw znaków dla pliku" wybieramy binary * Klikamy "Wykonaj" UWAGA: jeśli otworzy Ci się biała strona, to oznacza iż plik z bazą jest za duży. Co zrobić w takim wypadku opisuje inny temat w FAQ.
    2. Przy pomocy phpMyAdmina (kopię wykonaliśmy również z phpMyAdmina i NIE zaznaczyliśmy kompatybilność eksportu MYSQL40 i/lub w zrobionym zrzucie bazy mamy ciąg "DEFAULT CHARSET..." :!: ) * Wchodzimy do phpMyAdmina * Na pierwszej stronie powinniśmy mieć coś w stylu: "System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)" Z innymi kodowaniami się nie spotkałem i ich nie będę opisywał. Jednak jeśli takie występuje, to należy najprawdopodobniej to samo wpisać w poleceniach SET poniżej (wyróżnione kolorkiem) * Edytujemy nasz plik .sql z kopią bazy. * Na samym początku pliku dopisujemy:
      Cytat:
      SET NAMES 'utf8'; SET CHARACTER SET 'utf8'; SET SESSION collation_connection = 'latin1_general_ci';
      * Zapisujemy plik * Wybieramy w phpMyAdminie naszą bazę. * Na górze wybieramy SQL (interesuje nas na stronie tylko ramka: "lub Lokalizacja pliku tekstowego") * Klikamy "Przeglądaj" i wskazujemy nasz plik z kopią * Na rozwijanej liście może zostać dowolna wartość (np: utf8) * Klikamy "Wykonaj"
    3. Przy pomocy DBLoadera (kopia została wykonana przy użyciu wbudowanej w forum "Kopii zapasowej") * Kopiujemy plik z backupem na nowe forum do katalogu głównego forum. * Wchodzimy do DumpLoadera (http://twojeforum/dbloader/dbloader.php) * Wybieramy "Wczytaj bazę danych" * Przed wybraniem pliku (o ile mamy już cokolwiek na forum) proponuję usunąć wszystkie tabele prefix_* (unikniemy w ten sposób błędów, iż nie można utworzyć tabeli, a ponieważ tabele będą już zawierały dane, stąd może dojść do zdublowania informacji). Na wszelki wypadek możesz wykonać aktualną kopię. * No to zaczynamy: "Rozpocznij wgrywanie" * Czekamy... i sprawdzamy czy wszystko ok jest z forum (przy tej metodzie nie spotkałem się aby wykonany i wgrany dump nie działał bądź były z nim jakieś problemy z kodowaniem polskich liter) * UWAGA: w szczególnych przypadkach kopia ta może odtworzyć się z błędami (w efekcie nie będziemy mieli odtworzonych kilku tabel) - sprawdźmy to w zakładce "Sprawdzenie bazy" w dbloaderze. Jeśli tak, wykonaj punkt poniższy wykorzystując do przywrócenia phpMyAdmina.
    4. Przy pomocy phpMyAdmina (kopia została wykonana przy użyciu wbudowanej w forum "Kopii zapasowej") (opis w oparciu o phpMyAdmin 2.8.x i 2.9.x) WARUNEK konieczny do prawidłowego odtworzenia polskich znaków: • W starej bazie, w widoku struktury tabel widoczny był napis: "Metoda porównywania napisów" i wartość: "latin1_swedish_ci" * Wybieramy w phpMyAdminie naszą bazę. * Na górze w ramce po prawej stronie wybieramy Import (interesuje nas na stronie tylko ramka: "Plik do importu") * Klikamy "Przeglądaj" i wskazujemy nasz plik z kopią * Najważniejsze: z rozwijanej listy: "Zestaw znaków dla pliku" wybieramy ISO-8859-1 * Przypomnę, że nie ruszamy zawartości pozostałych ramek - mają one zostać domyślne * Klikamy "Wykonaj" UWAGA: jeśli otworzy Ci się biała strona, to oznacza iż plik z bazą jest za duży. Co zrobić w takim wypadku opisuje inny temat w FAQ.
  3. Jakie poprawki wprowadzić do modułu kopii zapasowej, aby w 100% odtworzyć bazę (dot. tylko phpBB by Przemo w wersji 1.12.5) Co prawda temat ten został już przeze mnie opisany w dziale "Mod. Gotowe [ 1.12.5 ]" i temacie Ilość przechowywanych kopii, ale jest on na tyle ważny i związany z tematem, że postanowiłem go powielić.
    1. Problem objawia się przy odtwarzaniu bazy przy pomocy dumploadera. Najczęściej pasek postępu z kilkunastu (kilkudziesięciu) procent (w zależności od rozmiaru bazy danych), od razu przeskakuje do 100% i stwierdza, że baza została odzyskana prawidłowo. Niestety, ale w efekcie błędu, nie zostają odzyskane tabele phpbb_posts_text oraz następne. Następuje również błędne informowanie o "sukcesie" operacji. Dodatkowo zostały usunięte następujące błędy i niedogodności:
    2. usunięte zostały 4 błędy przy wykonywaniu backupu (w tym związany z (nie)usuwaniem starych kopii),
    3. wykonywanie kopii (jeśli serwer obsługuje kompresję gzip), powinno znacznie mniej obciążać serwer oraz potrzebna jest kilkanaście razy mniejsza ilość wolnego miejsca na serwerze do wykonania kopii,
    4. ręczne wykonanie kopii zapasowej z poziomu PA tworzy dodatkową kopię (to, co jest wpisane jako ilość maksymalna kopii + 1) - uznałem, że administrator jeśli wykonuje kopię ręcznie, to nie powinno to kasować poprzednich kopii. Plik z poprawkami (2 pliki) dostępny jest w temacie Ilość przechowywanych kopii. Podkreślę jednak, że jest to poprawka do modułu wykonującego kopie zapasowe. Oznacza to, że kopie wykonane po zastosowaniu poprawki powinny się prawidłowo odtworzyć.
Powyższy opis (punkty 1 i 2) może nie działać, jeśli konfiguracja serwera SQL jest "egzotyczna". INFORMACJA od autora: Straciłem kilka godzin na uporządkowanie tego tematu. Zostawiłem tylko wiadomości, które pomogły lub jest bardzo prawdopodobne, iż mogą pomóc. I taki charakter tego tematu chciałbym zachować. A jeśli znalazłeś inny sposób aby z sukcesem przenieść bazę w przypadku problemów z kodowaniem, opisz tutaj go dokładnie. PROSZĘ nie pisać tutaj wiadomości typu: mam "krzaczki", kto mi przeniesie bazę itp. Do takich pytań jest specjalny temat w dziale Ogólnym: Dyskusja nt. braku polskich liter na forum. Dziękuję za zrozumienie. //Historia edycji: 08-10-2006: dodany opis odtworzenia bazy w phpMyAdmine (jeśli kopia wykonana została przez forum). 08-10-2006: uporządkowanie treści i pogrupowanie podtematów, aby struktura była bardziej przejrzysta. 16-11-2007: dodanie opisu poprawki dla modułu kopii zapasowej (pkt. 3)

HTML 4.0 NUMERY ZNACZNIKI
Ą Ą Ä,,
ą ą Ä...
Ć Ć Ä
ć ć Ä
Ę Ę Ä˜
ę ę Ä
Ł Ł Å
ł ł Å,
Ń Ń Åƒ
ń ń Å
Ó Ó Ã"
ó ó ó
Ś Ś Åš
ś ś Å
Ź Ź Ź
ź ź Å°
Ż &#379 Å»
ż ż ż

_________________
Zanim napiszesz do mnie na GG/PW, koniecznie przeczytaj zasady.
Sygnaturka to nie tablica z ogłoszeniami! PAMIĘTAJ o tym! Nadużywanie i celowe reklamowanie stron jest ZABRONIONE i karalne!
Gość, a czy Ty nie masz sobie nic do zarzucenia?
 
     
Gadatliwa Kasia 

   
daker


Posty: 58
Wysłany: 09-01-2006, 16:53   

mam baze w latin1 no i importowalem na nowy serwer na poczatkuzrzutu dalem
SET NAMES 'latin1';
SET CHARACTER SET 'latin1';
SET SESSION collation_connection = 'latin1_swedish_ci';
no i dziala wszyttko pod IE ale pod Opera nie dziala
 
     
SirmarK

Posty: 8
Wysłany: 25-03-2006, 00:28   

tak czytam o problemach z krzaczkami i mi sie nasuwa jedno.

baza na serwerze bedize zakodowana w iso--2 (latiin2)
ale sam serwer moze dzialac w latin1 i wtedy sie pojawia problemy.
Trzeba przy polaczeniu wymusic odpowiedni charset

Bierzemy plik /forum/db/mysql4.php
otwieramy plik i dostawiamy linijke
Kod:

mysql_query("set names 'latin2'",$this->db_connect_id);


po modyfikacji wyglada to tak


Kod:

                if( $this->db_connect_id )
        {
            if( $database != "" )
            {
                $this->dbname = $database;
                $dbselect = mysql_select_db($this->dbname);
                mysql_query("set names 'latin2'",$this->db_connect_id);

                if( !$dbselect )
                {
                    mysql_close($this->db_connect_id);
                    $this->db_connect_id = $dbselect;
                }
            }

            return $this->db_connect_id;
        }
 
     
Krysto

Posty: 7
Wysłany: 30-03-2006, 12:11   

Witam serdecznie mam problem z polskimi znakami na forum. Dostałem następującego maila od administratora serwera:

Cytat:
>W związku z licznymi problemami, pytaniami i prośbami o zmianę
>
> kodowania bazy danych mysql, postanowiliśmy zmienić domyślne
>
> ustawienia kodowania dla nowych baz oraz kodowania dla systemu
>
> połączeń na standardowe obowiązujące w Polsce czyli iso-latin2
> (iso8859-2)
>
>
>
> Bazy które miały ustawione kodowanie na latin1 (iso8859-1)
>
> a znaki w bazie zakodowane były w latin2 (ustawienia niestandardowe
>
> stosowane w starych bazach) powinny być przekodowane do
>
> latin2.
>
> Być może nie każdy wie jak to zrobić, wystarczy więc
>
> w pliku w którym występuje połączenie do bazy zaraz
>
> po połączeniu do bazy (BD_CONN) wysłać następujące
>
> zapytanie SQL:
>
>
>
> $db->sql_query("SET NAMES latin1");
>
>
>
> które zmieni ustawienie domyślne połączeń serwera z latin2 na latin1.
>
> Każdy użytkownik może w ramach swojego oprogramowania,
>
> dokonać samodzielnie zmian wszystkich parametrów serwera
>
> bez względu na to jakie są ustawienia domyślne:
>
>
>
> $db->sql_query("SET character_set_connection=latin1");
>
> $db->sql_query("SET character_set_client=latin1");
>
> $db->sql_query("SET character_set_results=latin1");
>
>
>
> Sam również może zmienić kodowanie bazy na dowolne
>
> jakie mu pasuje.
>
>
>
> Informujemy iż rozwiązanie gdzie baza kodowana jest w latin1
>
> a znaki w niej wprowadzone są kodowane w latin2 jest
>
> rozwiązaniem niepoprawnym gdyż polskie znaki są błędnie
>
> rozpoznawane przez bazę (np. w sytuacji kiedy wyświetlamy
>
> wyniki w kolejności alfabetycznej) problemy z ich rozpoznaniem
>
> będą również w nowych wersjach phpMyAdmin który
>
> obsługuje tylko standardowe systemy kodowania.
>
>
>
> Dodam jeszcze że mając poprawne kodowanie bazy i znaków w latin2
>
> w prosty sposób możemy zmienić kodowanie strony WWW na UTF-8
>
> czyli standard międzynarodowy, wystarczy więc tylko ustawić przy
>
> połączeniu do bazy system połączeń na utf8:
>
>
>
> $db->sql_query("SET NAMES utf8");
>
>
>
> i na stronie www zmienić charset na uft-8:
>
>
>
> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
>
>
>
> w ten sposób mamy stronę zakodowaną w utf-8 bez konieczności
>
> jakichkolwiek zmian w bazie.
>
> Polecamy te rozwiązanie.


Próbowałem już wiele sposobów edycji pliku mysql4.php jednak nic nie pomogło... dodawałem polecenia mysql_query('SET NAMES latin2', $this->db_connect_id); i wciąż mam krzaczki. Błagam o pomoc.
 
     
szarywilk

Posty: 1
Wysłany: 28-04-2006, 20:49   

Jestem bliski rozwiązania tego problemu - proszę o pomoc!

Pomógł mi ten post:
Cytat:
Witam!
Napisałem o tym już na forum phpbb by Przemo!
Brak polskich znaków występuje na serwerach z nowymi wersjami MySQL oraz phpMyAdmin.
Aby mieć polskie znaki zamiast znaków zapytania należy:
1. Wgrać w całości bazę danych na serwer, jeżeli baza już jest to ok.).
2. Ustawić w phpMyAdmin:
- język: Polish (pl-utf- 8)
- system porównań dla połączenia MySQL: utf8_general-ci
- dla konkretnej tabeli - metoda porównywania napisów: utf8_general-ci
3. Generalnie chodzi o polskie znaki w tabeli phpbb_post_text oraz phpbb_topisc (tabele odpowiedzialne za treść postów oraz ich tytuł) Oczywiście można zmienić wszystkie tabele np. odpowiedzialne za tematy for, użytkowników itp.).
4. W pliku sql gdzie mamy cały zrzut bazy danych odszukujemy zrzuty w/w tabel. Tworzymy nowy plik o nazwie post_text (oczywiście nazwa dowolna) i kopiujemy do niego z pliku sql dane tabeli phpbb_post_text. TYLKO DANE BEZ STRUKTURY TABELI. Analogicznie do każdej tabeli nowy plik.
5. Otwieramy taki plik w edytorze pozwalającym na konwersje znaków (polecam EdHTML). Ustawiamy taki sposób kodowania aby polskie litery miały ogonki (ISO-8859-2).
6. Teraz nadszedł czas na zmianę na utf-8 (znaki Unicode). W opcjach programu wybieramy znajdź/zmień ewentualnie zastąp. W polu "znajdź" wpisujemy np. ą a w polu "zmień na" wpisujemy & # 261; (bez spacji) Klikamy OK i wszystkie ą zostają zmienione.
Kody polskich znaków w systemie Unicode znajdziecie m.in na http://www.kurshtml.boo.pl/skrypty/unicode.html
7. W ten sposób zmieniamy wszystkie polskie znaki na znaki Unicode.
Przykład: Zdanie z polskimi znakami: "Już będą wyświetlane prawidłowo."
Po naszej zmianie wygląda: Ju& #380; b& #281;d& #261; wy& #347;wietlane prawid& #322;owo.
8. Wchodzimy do phpMyAdmin, czyścimy tabelę w której chcemy dokonać zmian i za pomocą zakładki SQL wrzucamy (kopiujemy) zawartość naszego pliku (już ze znakami Unicode). Ważne aby przed przystąpieniem do uzupełniania tabeli wyczyścić ją a nie nadpisywać.
9. Przeglądając zmienioną tabelę widzimy już w niej znaki Unicode a na naszym forum są już polskie znaki!
Działa w 100%. Sprawdzałem na dwóch serwerach na których właśnie po przejściu na nowe wersje
programów na forach występowały znaki zapytania.

Tak jak pisze, wszędzie w phpmyadmin mam utf8. Bazę danych przekonwertowałem ręcznie na utf8 za pomocą tablicy kodowej, "wgrałem" - i są polskie litery! Tyle tylko, że NADAL NIE MOŻNA PISAĆ POLSKIMI LITERAMI :( Jeśli wpisze się w poście polskie litery, wogóle ich nie pokazuje ;(

Może ktoś wie co dalej?

[edit]
Może wsadzić gdzieś: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ???
Ostatnio zmieniony przez warna 28-04-2006, 20:54, w całości zmieniany 1 raz  
 
     
Bigbluee

Posty: 52
Wysłany: 12-05-2006, 18:21   

To teraz pytanie od drugiej strony. Jak podczas instalacji skonfigurować MYSQL aby nie wystąpiły takie problemy? Jakaś newralgiczna komenda lub parametr ;) ?
 
     
Crack



Pomógł: 136 razy
Posty: 1442
Wysłany: 12-05-2006, 20:22   

Najbezpieczniej jeszcze przed instalacją forum zmodyfikować plik mysql4.php aby wysyłał do serwera SET NAMES latin2 i ustawić kodowanie bazy danych na latin2_polish_ci albo latin2_general_ci.
_________________
[ DumpLoader 1.0 ] [ Spider Friendly 1.3.12 Google Sitemaps 1.4 ]
[ Tanuki: recenzje anime | forum ]
 
     
Bigbluee

Posty: 52
Wysłany: 13-05-2006, 00:22   

Crack napisał/a:
Najbezpieczniej jeszcze przed instalacją forum zmodyfikować plik mysql4.php aby wysyłał do serwera SET NAMES latin2 i ustawić kodowanie bazy danych na latin2_polish_ci albo latin2_general_ci.

Dodałem to w mysql4.php
Kod:
mysql_query("set names 'latin2'",$this->db_connect_id);
i teraz jest tak:
Kod:

                if( $this->db_connect_id )
        {
            if( $database != "" )
            {
                $this->dbname = $database;
                $dbselect = mysql_select_db($this->dbname);
                mysql_query("set names 'latin2'",$this->db_connect_id);

                if( !$dbselect )
                {
                    mysql_close($this->db_connect_id);
                    $this->db_connect_id = $dbselect;
                }
            }

            return $this->db_connect_id;
        }

Teraz poprawnie wysyła zawartośc postów do mysql. Dzieki za pomoc. Teraz to już chyba kazdy sobie poradzi z krzakami, bo już wszytskie mozliwe warianty krzaków i ich likwidacji zostały omówione
 
     
Sajmon

Posty: 22
Wysłany: 17-05-2006, 21:02   

To spróbuj

config.php ma mieć wpis
Kod:
$dbms = 'mysql4';


a w db/mysql4.php
znajdź
Kod:
$dbselect = mysql_select_db($this->dbname);


i zaraz za tym wstaw
Kod:
mysql_query('SET NAMES latin2', $this->db_connect_id);
mysql_query('set charset latin2', $this->db_connect_id);


W tej chwili została poprawiona baza 95MB bez żadnych zrzutów/wrzutów i kombinacji.
 
     
chelloPL



Pomógł: 413 razy
Posty: 2545
Wysłany: 21-05-2006, 17:21   

UWAGA: kilka osób proponowało dodanie do pliku mysql4.php kodu:
Kod:
mysql_query("set names 'latin2'",$this->db_connect_id);

W specyficznych sytuacjach powoduje on błędy przy pisaniu postów i dodawaniu wpisów do tabel _search*

Dlatego proszę się nie dziwić, że nagle przestało działać forum z tego powodu. Nie jest to prawidłowe rozwiązanie problemu, lecz próba jego obejścia (która z tego co widzę, jedno naprawia, a drugie psuje).
_________________
Zanim napiszesz do mnie na GG/PW, koniecznie przeczytaj zasady.
Sygnaturka to nie tablica z ogłoszeniami! PAMIĘTAJ o tym! Nadużywanie i celowe reklamowanie stron jest ZABRONIONE i karalne!
Gość, a czy Ty nie masz sobie nic do zarzucenia?
 
     
gfox

Posty: 8
Wysłany: 31-05-2006, 23:32   

Poradzilem sobie.. co prawda w sposob chamski i bezczelny.. ale dziala :)
Znalazlem dysk na ktorym byl stary serwer i.. skopiowalem pliki bazy (MYD, MID, frm) do katalogu nowego serwera.
Smiga :]
Ostatnio zmieniony przez chelloPL 08-10-2006, 18:04, w całości zmieniany 1 raz  
 
     
micek

Posty: 5
Wysłany: 08-06-2006, 11:41   

problem już rozwiązałem

kopia bazy zrobiona przez forum zakodowana była w iso (ą -±)

nowey serwer (webd.pl) domyslnie kodowanie w phpmyadminie miał ustawione na latin2_general_ci (na poprzednim serwerze latin1_swedish_ci)
baze wgrałem ręcznie i przed każdą porcją zapytań dałem

Kod:

SET NAMES 'utf8';
SET CHARACTER SET 'utf8';
SET SESSION collation_connection = 'latin2_general_ci';


gdzie:
SET NAMES 'utf8'; - kodowanie zrzutu bazy
SET CHARACTER SET 'utf8'; - kodowanie zrzutu bazy
SET SESSION collation_connection = 'latin2_general_ci'; - domyślne kodowanie serwera mysq



w moim przypadku pomogło, zaznaczam, że baza była wgrana ręcznie (kopiowane i wklejane z editplusa) ponieważ dbloader nie działa, a phpmyadmin pobierając plik (nawet małe pliki z ilością 2000 tys zapytań) z zrzutem albo pomijał wpisy (podobnie jak dbloader ? może miał za dużo naraz)
albo zmieniał kodowanie pomimo z góry narzuconego w pierszwych trzech linijkach

pozdrawiam i życze powodzenia
 
     
jochen

Posty: 27
Wysłany: 15-06-2006, 16:17   

Znalazłem sposób :)

Do przeprowadzenia tej czynności potrzebne są:
- GŻEGŻÓŁKA (PROGRAM DO KONWERSJI)
- NOTATNIK


1. Kopie bazy danych otwieramy GŻEGŻÓŁKĄ i sprawdzamy typ kodowania (u mnie był UTF-8)
2. Zmieniamy ręcznie w notatniku lierki małe i DUŻE na polskie odpowiedniki np.æ na "ć".
3. Konwertujemy programem na ISO 8859-2 (Europa środkowa)
4. Kompresujemy bazę do formatu *.gz
5. Wgrywamy na serwer do katalogu \dbloader
6. Uruchamiamy dumploadera i wgrywamy :)
7. Forum działa i ma piękne polskie literki
 
     
Raknor

Pomógł: 197 razy
Posty: 1180
Wysłany: 19-06-2006, 03:57   

Mnie pomógł ten post.

szarywilk napisał/a:
Jestem bliski rozwiązania tego problemu - proszę o pomoc!

Pomógł mi ten post:
Cytat:
Witam!
Napisałem o tym już na forum phpbb by Przemo!
Brak polskich znaków występuje na serwerach z nowymi wersjami MySQL oraz phpMyAdmin.
Aby mieć polskie znaki zamiast znaków zapytania należy:
1. Wgrać w całości bazę danych na serwer, jeżeli baza już jest to ok.).
2. Ustawić w phpMyAdmin:
- język: Polish (pl-utf- 8)
- system porównań dla połączenia MySQL: utf8_general-ci
- dla konkretnej tabeli - metoda porównywania napisów: utf8_general-ci
3. Generalnie chodzi o polskie znaki w tabeli phpbb_post_text oraz phpbb_topisc (tabele odpowiedzialne za treść postów oraz ich tytuł) Oczywiście można zmienić wszystkie tabele np. odpowiedzialne za tematy for, użytkowników itp.).
4. W pliku sql gdzie mamy cały zrzut bazy danych odszukujemy zrzuty w/w tabel. Tworzymy nowy plik o nazwie post_text (oczywiście nazwa dowolna) i kopiujemy do niego z pliku sql dane tabeli phpbb_post_text. TYLKO DANE BEZ STRUKTURY TABELI. Analogicznie do każdej tabeli nowy plik.
5. Otwieramy taki plik w edytorze pozwalającym na konwersje znaków (polecam EdHTML). Ustawiamy taki sposób kodowania aby polskie litery miały ogonki (ISO-8859-2).
6. Teraz nadszedł czas na zmianę na utf-8 (znaki Unicode). W opcjach programu wybieramy znajdź/zmień ewentualnie zastąp. W polu "znajdź" wpisujemy np. ą a w polu "zmień na" wpisujemy & # 261; (bez spacji) Klikamy OK i wszystkie ą zostają zmienione.
Kody polskich znaków w systemie Unicode znajdziecie m.in na http://www.kurshtml.boo.pl/skrypty/unicode.html
7. W ten sposób zmieniamy wszystkie polskie znaki na znaki Unicode.
Przykład: Zdanie z polskimi znakami: "Już będą wyświetlane prawidłowo."
Po naszej zmianie wygląda: Ju& #380; b& #281;d& #261; wy& #347;wietlane prawid& #322;owo.
8. Wchodzimy do phpMyAdmin, czyścimy tabelę w której chcemy dokonać zmian i za pomocą zakładki SQL wrzucamy (kopiujemy) zawartość naszego pliku (już ze znakami Unicode). Ważne aby przed przystąpieniem do uzupełniania tabeli wyczyścić ją a nie nadpisywać.
9. Przeglądając zmienioną tabelę widzimy już w niej znaki Unicode a na naszym forum są już polskie znaki!
Działa w 100%. Sprawdzałem na dwóch serwerach na których właśnie po przejściu na nowe wersje
programów na forach występowały znaki zapytania.

Tak jak pisze, wszędzie w phpmyadmin mam utf8. Bazę danych przekonwertowałem ręcznie na utf8 za pomocą tablicy kodowej, "wgrałem" - i są polskie litery! Tyle tylko, że NADAL NIE MOŻNA PISAĆ POLSKIMI LITERAMI :( Jeśli wpisze się w poście polskie litery, wogóle ich nie pokazuje ;(

Może ktoś wie co dalej?

[edit]
Może wsadzić gdzieś: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ???


Wszystko ręcznie wklepywane (phpMyAdmin -> Bazy danych -> "twoja_baza" -> SQL (zakładka)):

Mój przepis wygląda tak:
1) Wykonać zrzut bazy z poziomu Forum (plik bazy znajduje się w /db/db_backup/, system kodowania bazy Windows-1250)
2) W nowej bazie ustawić w phpMyAdmin:
- język: Polish (pl-utf-8)
- system porównań dla połączenia MySQL: utf8_general_ci
3) Wklepać przez phpMyAdmin ze zrzutu bazy wszystkie CREATE TABLE do nowej bazy
4) Zmienić w phpMyAdmin (nowej bazy) wszystkie tabele na utf8_general_ci
5) Otworzyć zrzut bazy przez program EdHTML v5.0, zmienić system kodowania na ISO 8859-2 (Dokument -> System kodowania) i zapisać (pojawią się polskie znaki ę,ó,ą,ś,ł,ż,ź,ć,ń).
6) Teraz trzeba zmienić system kodowania zmodyfikowanej bazy z ISO 8859-2 na Unicode. W moim przypadku bazę edytowałem programem Programmer's Notepad 2 v0.6.1 (Find -> Replace -> Find watch:(Znajdź:) Replace with:(Zamień z:) i kliknąć Replace All(Zamień wszystko)). Gdyż windowsowski notatnik jak i ten EdHTML nie odróżniał wielkich od małych liter. Czyli gdy dajesz żeby Ci zmienił np. znak Ł na &#321 (powinien być jeszcze średnik na końcu, ale po dodaniu ten kod zmienia się w Ł) to zmieniał wszystkie Ł i ł na &#321
7) Wklepać teraz wszystkie INSERT INTO do nowej bazy


Ale pomimo tego co zrobiłem mam pytanie. Czy podzielenie zrzutu bazy na dwie części daje coś w dbloaderze?

Pierwsza część od [CREATE TABLE phpbb_admin_notes] do pierwszego średnika przed [CREATE TABLE phpbb_posts_text_history].
Druga część od [CREATE TABLE phpbb_posts_text_history] i do samego końca.


Edit:

Znalazłem przypadkiem ciekawe narzędzie, może sie przydać -> FOX Edit
Ostatnio zmieniony przez Raknor 18-12-2006, 05:37, w całości zmieniany 5 razy  
 
     
Gadatliwa Kasia 

   
Dwako

Posty: 1
Wysłany: 11-10-2006, 12:49   

Witam. Po kilku godzinach żmudnych, niewiele wnoszących prób udało mi się w końcu zaimportować poprawnie bazę danych z polskimi litrerkami.

Server z którego exportowałem to ovh.org (Metoda porównywania napisów - latin1_swedish_ci).
Importowałem do webd.pl (Metoda porównywania napisów - latin2_general_ci).



- wyexportuj bazę danych za pomocą forum (zaloguj się do panelu administratora, z menu wybierz Kopia zapasowa i Wykonaj kopię teraz)
- w folderze /db/db_backup/ powinien utworzyc sie nowy plik. Pobierz go na dysk.
- zaloguj się do PhpMyAdmin, usuń dotychczasowe tabele w bazie (jesli wcześniej je probowałeś importować). Na stronie głównej Zmień System porównań dla połączenia MySQL na latin2_general_ci.
- kliknij na istniejaca baze danych w menu i wybierz Import. Podaj Lokalizacja pliku tekstowego dla kopi bazy ktora sciągłeś na dysk, zmień Zestaw znaków dla pliku na latin2 i kliknij Wykonaj.

W moim przypadku zadziałało. Dodam, że gdy importowałem plik na serverze zainstalowany był phpMyAdmin 2.8.2.4, a MySQL w wersji 4.1.21-standard-log.

Powodzenia życzę :)
_________________
www.rozwojduchowy.net
 
     
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,11 sekundy. Zapytań do SQL: 14
Polecane serwisy



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



phpbb

serwis laptopów

Guru Wrocław - skuteczne pozycjonowanie stron w Google

• Zamów reklamę

Egzotyczne sadzonki i nasiona krajowe i zagraniczne, Sprzedaż wysyłkowa roślin i nasion kwiatów praktyczne porady ogrodnicze, opisy, zdjęcia roślin, najlepsze forum o roślinach egzotycznych w Polsce