Nowe posty

Autor Wątek: Kodowanie znaków w MySql  (Przeczytany 8147 razy)

axlinux

  • Gość
Kodowanie znaków w MySql
« dnia: 2008-02-11, 22:00:25 »
Witam

Mam taki oto problem:

Mam postawioną bazę danych na mysql. Korzysta z niej skrypt napisany w php.
I teraz podczas pobierania danych z bazy i ich wyświetlania pojawiają się zamiast polskich liter znaki zapytania.

Kombinowałem na wiele sposobów jak ten problem rozwiązać, czy ktoś może mi napisać jaki kod gdzie wstawić i co pozamieniać ;D

Na razie mam dość ostro zamieszane, oto fragmenty:

na stronie mam ustawione kodowanie: charset=utf_polish_ci

przy połączeniu z bazą w skrypcie: mysql_query("SET NAMES utf_polish_ci");


W phpmyadmin przy tworzeniu bazy:

Metoda porównywania napisów: utf_polish_ci

poszczególne kolumny w bazie to np. autor     varchar(50)     utf8_polish_ci


Wszędzie gdzie tylko się dało wsadziłem to utf_polish_ci

W phpmyadmin znaki polskie w zawartości bazy się wyświetlają poprawnie. Na stronie również nie ma problemu ze znakami wpisanymi za pomocą echo itp, tylko zawartość bazy się źle wyśiwetla.

Server jedzie Xubuntu.

;]


Dziękuje za posty, ale prosiłbym o dość rozbudowana odpowiedź jeżeli jest to możliwe, czyli co gdzie zmienić i gdzie to jest o czym zapomniałem :) Dość dużo kombinowałem i nie pomogło. :)


Dzięki

ZipoKing

  • Gość
Kodowanie znaków w MySql
« Odpowiedź #1 dnia: 2008-02-11, 22:18:54 »
Wrzuć takie coś zaraz po nawiązaniu połączenia, powinno pomóc:
SET NAMES latin2
SET CHARACTER SET latin2
To, że w bazie wszystko jest w UTF to MySQL przeczyta sobie z tabeli, ale ty musisz powiedzieć, że PHP nadaje w ISO-8859-2 (ISO-Latin2) ;)

axlinux

  • Gość
Kodowanie znaków w MySql
« Odpowiedź #2 dnia: 2008-02-12, 09:15:27 »
Dzięki wielkie :]

Pomogło, wczoraj nad tym siedziałem około 2h kombinując w jakikolwiek sposób i szukając na necie....

mlodyn

  • Gość
Kodowanie znaków w MySql
« Odpowiedź #3 dnia: 2008-02-12, 09:59:40 »
Zamiast ustawiać za każdym razem podczas połączenia system kodowania można też poprawnie ustawić kodowanie domyślne bazy danych...
CREATE DATABASE db_x CHARSET=latin2
Dodatkowo ustawić trzeba odpowiednie kodowanie w pliku php.ini.
Dodając pełną zgodność kodowań tabel i kolumn tekstowych z kodowaniem bazy danych uzyskujemy poprawnie skonfigurowane srodowisko współpracy PHP i MySQL