Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano (edytowane)

Hej,

Jestem zdesperowany, bo mam strasznie patową sytuację. Może znajdzie się jakaś rada by rozwiązać problem na moim forum.

Zrobiłem upgrade forum, ale nie mam polskich znaków. Niby standard, ale jednak nie...

W bazie danych wszystkie znaki wyświetlają się dokładnie w takiej samej postaci jak w starej bazie danych (na innym serwerze). Mają dokładnie takie samo kodowanie latin2_general_ci. Ogólnie wszystko jest takie samo, więc wychodzę z założenia, że w bazie danych jest wszystko ok.

Na starym forum (jeszcze silnik 1.3.1) kodowanie wyświetlania strony było windows-1250.

Czego próbowałem po upgradzie:

- w server environment zmienić kodowanie na utf-8, windows-1250, iso-8859-2

- w conf_global.php dodać charset_sql ww. kodowaniach.

- zmodyfikować klasy in classDbMysqlClient.php i classDbMysqliClient.php ww. kodowaniach.

Nic nie pomogło :P

Najciekawsze jest to, że na localhoście postawiłem próbne forum i tam są polskie znaki, przy ustawionym kodowaniu wyświetlania strony windows-1250 i zmodyfikowanych klasach dbmysql(i)client by łączyły się z charsetem "latin2". Baza danych jest identyczna (to samo collation i widzę ten sam zestaw znaczków).

Oczywiście próbowałem takiego rozwiązania i takiej samej konfiguracji, ale nie wyszło.

Zgłosiłem się do IPB support. Pierwszy departament nie dał rady, przesłał ticket do technicznego. Ci też nie dali rady i przesłali to do experta od kodowania. A ten coś popróbował i milczy od 48h.

Forum jest już 5 dzień wyłączone, a mi już dawno wyczerpały się pomysły.

Może gdzieś jednak jest problem z bazą danych, ale go nie widzę dobrze? Nie wiem.

Zgłaszam się tutaj, bo może ktoś ma jakiś pomysł czego można jeszcze spróbować, albo co sprawdzić. Spytać nie zaszkodzi.

Any help?

Edytowane przez melior
Opublikowano (edytowane)

Gość nazywa się Brandon Farber.

Zauważyłem w sumie przed chwilą jeszcze jeden szczegół, ale kompletnie nie mam pojęcia czy może mieć on jakiś wpływ na ten problem.

Na samym dole bazy w podsumowaniu, raz mam cp1250, a raz latin2_general_ci, choć tak jak wspomniałem reszta jest identyczna.

baza stara

baza nowa

Nową bazę importowałem używając kodowania utf-8. Jeżeli importowałem ją iso-8859-2 to stara i nowa różniły się (znaczki wyglądały inaczej). W obu phpmyadmin mam jednak ustawione UTF-8, więc wychodzę z założenia, że ten sam zestaw znaków powinien być wyświetlany identycznie.

Edytowane przez melior
Opublikowano

Brandon jest najlepszy - pyknie Ci to. :/

Jak wyglądają owe polskie znaki w bazie ( screen daj jeśli możesz )?

Cieszę się, że ma taką moc :/ Gdyby tylko miał chociaż trochę więcej czasu :P

Tak prezentują się dane w bazach

link1

link2

Opublikowano

in ips_kernel/classDbMysqlClient.php

mysql_query($this->connection_id, 'SET character_set_connection=latin2');

mysql_query($this->connection_id, 'SET character_set_client=latin2');

mysql_query($this->connection_id, 'SET character_set_results=latin2');

mysql_query($this->connection_id, "SET names latin2;");

and in ips_kernel/classDbMysqliClient.php

mysqli_query($this->connection_id, 'SET character_set_connection=latin2');

mysqli_query($this->connection_id, 'SET character_set_client=latin2');

mysqli_query($this->connection_id, 'SET character_set_results=latin2');

mysqli_query($this->connection_id, "SET names latin2;");

Opublikowano

Próbowałeś wpisać zamiast latin2 utf8?

Tak. Windows-1250 też.

Ogólnie z tego co mówili mi w supporcie, to zamiast takiej modyfikacji w kodzie, lepiej wymuszać charset poprzez conf_global.

Opublikowano (edytowane)

Przecież 'bazę danych masz' w cp1250 a tabele w latin2, ja bym na Twoim miejscu w phpMyAdmin w zakładce Operacje, "Metoda porównywania napisów" tej bazy zmienił na latin2. Może akurat ;p

Edytowane przez unbreak

userbar1.jpg

Twiztid Tribe ®

Opublikowano

Jeżeli Ci to nie sprawi problemu to mam prośbę. Zrzuć poprzez phpMyAdmin najbardziej obszerny treścią post jaki masz w bazie.

Robisz to tak: Wybierasz bazę->Wybierasz tabelę->Szukaj->W polu "PID" wpisuesz ID postu -> Pojawi Ci się on jeden, zaznaczasz go, na dole masz ikonkę EKSPORT, powinna być pod wynikiem wyszukiwania na końcu->Eksport - SQL, a potem jak możesz podeślij mi to na PW abym mógł przyjrzeć się dokładnie Twojemu kodowaniu, może będę w stanie w jakiś sposób Ci pomóc.

Opublikowano

Dzięki, ale już udało się rozwiązać problem.

Przyczyna leżała prawdopodobnie w character_set_server. Na starym serwerze było tam latin2, na nowym utf8. To jedyna różnica między obiema bazami i serwerami jaką udało się znaleźć.

Rozwiązanie było w sumie proste, ale czasochłonne. Chodziło o import bazy danych w takiej formie, że w phpmyadmin wyświetlały się poprawnie wszystkie polskie znaczki. Zmieniłem więc kodowanie w bazy na utf8, dumpa przepuściłem gżegżółką zmieniając wszędzie znaki na polskie i zimportowałem. Potem ponownie wróciłem na kodowanie latin2 i odpaliłem upgrader'a. Po upgradzie wystarczyło zmienić kodowanie na iso-8859-2 i wyglądało ładnie. Jedynie "-" się trochę rozwaliły, ale to można naprawić UPDATE'em.

Uff.

Coś czuję że szykuje się trochę wolnego :]

  • Manager
Opublikowano

Problem ROZWIĄZANY. Jeśli są jakiekolwiek wątpliwości, pytania proszę o założenie nowego tematu.

Wszelkie uzasadnione reklamacje/pretensje/sugestie/rady przyjmuje ekipa forum.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.