Nowe posty

xx Przy uploadzie przerywane są wszystkie połączenia (9)
2020-06-01, 20:13:01
xx Apache2 i twarde https (3)
2020-05-25, 15:53:43
xx Czy istnieje emulator terminala który zapamieta komendy na jakiejś liście? (9)
2020-05-23, 17:04:57
xx RTLinux wybór dystrybucji (0)
2020-05-23, 15:42:54
xx Problem z instalacją Ubuntu na bootowalnym pendrajwie (9)
2020-05-22, 15:08:12
xx Ubuntudde 20.04 LTS nie działa Lightdm (8)
2020-05-22, 09:16:42
xx [Gra za darmo] GTA5 (1)
2020-05-20, 21:49:26
xx Marketing (1)
2020-05-13, 08:00:41
xx Polecenia Debian (1)
2020-05-10, 19:58:54
xx Uruchamianie pliku z każdego katlogu (2)
2020-05-10, 19:23:33

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

Offline

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 268
    • Zobacz profil
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
jak podmontowac partycje, zeby pliki mialy 666, a nie 777 ?
a ty co, satanista?

http://www.java-bean.net

Offline Paweł Smoliński

  • Administrator
  • Guru
  • *****
  • Wiadomości: 593
    • Zobacz profil
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) ;)
Gutta cavat lapidem non vi, sed saepe cadendo / sic homo doctus fit non vi sed saepe studendo

Offline

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 268
    • Zobacz profil
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....
jak podmontowac partycje, zeby pliki mialy 666, a nie 777 ?
a ty co, satanista?

http://www.java-bean.net

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 1
    • Zobacz profil
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
Najważniejsze jest niewidoczne dla oczu ...użytkownika