• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed character_set_server utf8 -> latin2

VPS Starter Arubacloud
0 głosów
1,718 wizyt
pytanie zadane 25 kwietnia 2018 w PHP przez Bartess Gaduła (3,630 p.)
zamknięte 26 kwietnia 2018 przez Bartess

Mam bazę danych, skrypty php czerpiące z niej dane i do tej pory jest ok. Przeniosłem bazę i skrypty na serwer w home.pl i na stronie przestało mi wyświetlać polskie znaki diakrytyczne dla danych pobranych z bazy danych. Zmeniając testowo  <meta charset="UTF-8"> na latin2 dane z bazy wyświatliły się poprawnie, zaś treść html z plików posypała się.
Uruchamiając  SHOW VARIABLES LIKE 'character_set%'; na poprzednim serwerze i na home.pl jedyna różnica jest dla character_set_server (stary utf8, w nazwa.pl latin2).
Ma ktoś jakiś pomysł na to? 

komentarz zamknięcia: Rozwiązany

2 odpowiedzi

+2 głosów
odpowiedź 25 kwietnia 2018 przez Comandeer Guru (605,260 p.)
wybrane 26 kwietnia 2018 przez Bartess
 
Najlepsza

A wymuszenie UTF-8 dla połączenia? W PDO służy do tego parameter charset w czasie łączenia lub wywołanie tuż po połączeniu zapytania SET NAMES 'utf8';.

komentarz 25 kwietnia 2018 przez Bartess Gaduła (3,630 p.)

Napisałem w odpowiedzi na wpis Kolegi Mariusz08

komentarz 26 kwietnia 2018 przez Bartess Gaduła (3,630 p.)

Pomogło!
Człowiek szuka jak gupi, zamiast słuchać fachowca :D. 
$db = new PDO(....);
$db->exec("set names utf8");
Działa :-).
Dziękuję @Comandeer!
 

0 głosów
odpowiedź 25 kwietnia 2018 przez Mariusz08 Maniak (62,280 p.)
Przy połączeniu z bazą danych musisz ustawiać odpowiednie kodowanie i zmienić typ "języka" bazy danych  na UTF-8.
komentarz 25 kwietnia 2018 przez Bartess Gaduła (3,630 p.)
#w iniku mam m.in:
pdocharset = "utf8"

#połączenie:
        $db = new PDO(config::$config['db']['driver'] .
                'dbname=' . config::$config['db']['db_name'] .
                ';host=' . config::$config['db']['host'] .
                ';charset=' . config::$config['db']['pdocharset'], config::$config['db']['user'], config::$config['db']['password']);

Co jeszcze musiałbym zmienić?

komentarz 25 kwietnia 2018 przez Mariusz08 Maniak (62,280 p.)
W phpmyadmin powinieneś zmienić kodowanie znaków w bazie danych z latin na UTF.
komentarz 25 kwietnia 2018 przez Bartess Gaduła (3,630 p.)
Jak to najprościej zrobić? Próbowałem przez set character_set_server=utf8, ale nie działa.
komentarz 26 kwietnia 2018 przez Assasz Nałogowiec (30,460 p.)

Może coś takiego:

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

 

Podobne pytania

0 głosów
2 odpowiedzi 4,507 wizyt
pytanie zadane 21 marca 2018 w Grafika i multimedia przez xxkondzioxx15 Obywatel (1,440 p.)
0 głosów
0 odpowiedzi 484 wizyt
0 głosów
2 odpowiedzi 6,030 wizyt
pytanie zadane 18 listopada 2017 w C i C++ przez PanJaqb Początkujący (360 p.)

93,022 zapytań

141,986 odpowiedzi

321,288 komentarzy

62,367 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...