![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Cześć, niby sprawa prosta, no ale kurde nie mogę sobie poradzić.
Sprawa ma się tak. Postawiłem bazę danych na localhoscie -> kodowanie bazy danych - utf8_unicode_ci, kodowanie tabel - utf8_unicode_ci, kodowanie wszystkich znakowych pól - utf8_unicode_ci. W pliku: I na localhoście wszystko działa poprawie. Za pomocą strony napisanej na localhoście uzupełniłem bazę danych. Są w bazie krzaki, na stronie wyświetla się poprawnie. Teraz przerzucam całość na serwer. Bazę danych exportuję do pliku SQL z kodowaniem UTF8. Importuję do bazy na serwerze (już ustawione było kodowanie utf8_unicode_ci). Po wgraniu kodowanie wszystkich tabel i pól zostało takie samo, czyli utf8_unicode_ci. Wgrywam pliki strony. Dodam, że Notepad++ wykazuje kodowanie dla każdego z plików UTF-8 (bez BOM) no i na stronie, zamiast pojawienia się jak na localhoście polskich znaków, wszędzie zamiast nich pojawiają się oryginalne wpisy z bazy, tzn krzaczki. Co robię nie tak? Dodam, że wolałbym nie musieć edytować rekordów w bazie, gdyż jest ich dużo. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób uzupełniłeś bazę na localhost?
Będziesz musiał zrobić poprawki na bazie, nie ma innej opcji, skoro są krzaczki. Nie powinno ich tam być. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób uzupełniłeś bazę na localhost? Będziesz musiał zrobić poprawki na bazie, nie ma innej opcji, skoro są krzaczki. Nie powinno ich tam być. Standardowo za pomocą mysqli przy pomocy strony w php z ustawieniami cały czas takimi, jak podałem wyżej. Naprawdę nie ma opcji, żeby bez edycji bazy danych to przerobić? (Ewentualnie istnieje strona, która przetworzy mi online takie kodowanie, żebym mógł sobie bota napisać, który mi to przerobi?) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Standardowo za pomocą mysqli przy pomocy strony w php z ustawieniami cały czas takimi, jak podałem wyżej. Naprawdę nie ma opcji, żeby bez edycji bazy danych to przerobić? (Ewentualnie istnieje strona, która przetworzy mi online takie kodowanie, żebym mógł sobie bota napisać, który mi to przerobi?) Przykro mi, ale nie wiem co oznacza standardowo. Masz na myśli na przykład poprzez phpmyadmin, czy też napisałeś sobie jakiś skrypt? Jeśli skrypt, to czy wkleiłeś gotowe zapytania, czy też wczytałeś plik? Nie znam takie strony. Bota owszem, mógłbyś sobie napisać, ale musiałbyś przejrzeć wszystkie kolumny tekstowe wszystkich tabel i odpalić dla każdej odpowiednie zapytanie. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przykro mi, ale nie wiem co oznacza standardowo. Inout textowy, button, klik i już. Dziwi mnie to, że dosłownie wszędzie od początku było ustawione takie samo kodowanie - dlatego dziwią mnie takie cyrki. Może to jakiś problem z exportem/importem? Chociaż tak, jak mówię, treści, tzn chodzi mi o konkretne krzaki odpowiadają sobie zarówno po stronie serwera jak i localhosta, zatem raczej to nie problem z przeniesieniem. Czy serwery podczas komunikacji narzucają jakieś kodowanie swoje i przez to pojawiają się krzaki? Bo dodam, że jeśli w pliku np. xhtml dodam polskie znaki to są one poprawie wyświetlane, chodzi tylko o te pobrane z bazy danych. Ten post edytował Warmix 21.08.2017, 19:38:41 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Inout textowy, button, klik i już. Dziwi mnie to, że dosłownie wszędzie od początku było ustawione takie samo kodowanie - dlatego dziwią mnie takie cyrki. Może to jakiś problem z exportem/importem? Chociaż tak, jak mówię, treści, tzn chodzi mi o konkretne krzaki odpowiadają sobie zarówno po stronie serwera jak i localhosta, zatem raczej to nie problem z przeniesieniem. Czy serwery podczas komunikacji narzucają jakieś kodowanie swoje i przez to pojawiają się krzaki? Bo dodam, że jeśli w pliku np. xhtml dodam polskie znaki to są one poprawie wyświetlane, chodzi tylko o te pobrane z bazy danych. Jakie locale jest ustawione na serwerze? Jeśli inne niż polskie to to zmień przed importem: -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jakie locale jest ustawione na serwerze? Jeśli inne niż polskie to to zmień przed importem: Nie bardzo rozumiem, jaki to ma wpływ na kodowanie znaków i przyznam, że nie bardzo rozumiem, jak w tym kontekście mam to użyć. Wrzucić do pliku PHP, odpalić go, potem wejśc w phpmyadmina i zaimportować bazę z pliku sql i powinno hulać? -- to nie hula. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo rozumiem, jaki to ma wpływ na kodowanie znaków i przyznam, że nie bardzo rozumiem, jak w tym kontekście mam to użyć. Wrzucić do pliku PHP, odpalić go, potem wejśc w phpmyadmina i zaimportować bazę z pliku sql i powinno hulać? -- to nie hula. Nie, przy tworzeniu bazy na localhost. Wywal to co masz obecnie lokalnie i utwórz ponownie. Zakładam, że masz wszelkie potrzebne komendy. Ewentualnie prześlij ten skrypt na docelowy serwer i tam utwórz bazę bezpośrednio. -------------------- Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zdefiniuj kodowanie dla połączenia z bazą.
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze rozumiesz.
http://php.net/manual/pl/mysqli.set-charset.php -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze rozumiesz. http://php.net/manual/pl/mysqli.set-charset.php Akurat tutaj skorzystałem z PDO. Zrobiłem to tak:
albo drugim sposobem, którego znalazłem:
Niestety, bez zmian. Wciąż ładuje krzaki z bazy, zamiast przerobić je na polskie znaki ![]() ref Jakaś idea co mogę jeszcze zrobić? |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Z tego co zrozumialem, to ty teraz ustawiles to polaczenie dla bazy na serwerze, gdzie niestety masz juz smietnik.
polaczenie w utf8 masz ustawic na localhost, skasowac baze na localhost, na nowo ja wypelnic danymi, zrobic export na serwer i wowczas na serwerze tez utf8 w polaczeniu i moze bedzie smigac ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 0 Dołączył: 13.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co zrozumialem, to ty teraz ustawiles to polaczenie dla bazy na serwerze, gdzie niestety masz juz smietnik. polaczenie w utf8 masz ustawic na localhost, skasowac baze na localhost, na nowo ja wypelnic danymi, zrobic export na serwer i wowczas na serwerze tez utf8 w polaczeniu i moze bedzie smigac ![]() Kurde ![]() ![]() nospor, istnieje jakaś szansa, żeby to obejść? Cokolwiek będzie na pewno szybsze, niż ręczne wypełnianie tego ponownie. Czy jeśli bym zrobił funkcję, która wczyta mi te stringi, wyszuka w nich znaki Unicode, potem nadpisze je na polskie (czy znów unicode?) już z łączeniem z bazą z charsetem UTF-8 to zadziała to? Albo jakaś zmiana kodowania tych kolumn? Cokolwiek. Skoro na localhoście poprawnie mi interpretuje te znaki, to zrobiłbym może tak: utworzę nową baze, nowe połączenie z charsetem UTF8, pobiorę w pętli kolejno wszystkie pola i wrzucę je do nowej tabeli, zadziała takie coś? ____ Okej, zrobiłem tak jak napisałem wyżej i problem zażegnałem. Dzięki za naprowadzenie. Ten post edytował Warmix 22.08.2017, 18:41:12 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:15 |