Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Kodowanie - raz na zawsze!
Forum PHP.pl > Forum > Przedszkole
Etil
W phpmyadmin, gdy dane wysyłam przez niego - wszystkie polskie znaki są wyświetlane, ale gdy wczytuje się to na stronę są krzaczki/znaki zapytania/kwadraty kieroglify... a gdy wysyłam te dane przez formularz, nawet w phpmyadminie nie wyświetla polskich znaków, tylko jakieś "zamienniki", wychodzi na to żę strona jest źle zrobiona lub formularz nie wie jak zapisać znaki do bazy...
by_ikar
Ehh, jeżeli chcesz to raz na zawsze rozwiązać musisz zrozumieć jedno: wszystko musi być w tym samym kodowaniu. meta w html, kodowanie plików (np php), kodowanie dla połączenia z bazą, oraz dane w bazie muszą mieć to samo kodowanie. Jak to zrozumiesz to problem z kodowaniem przestanie istnieć.
Etil
Zrozumiałem, więc gdzie muszę zmienić to wszystko na utf_8_polish_ci?
Etil
Ten poradnik mi się nie przyda bo nie używam PDO, co zrobić jeśli łącze się z bazą w sposób "standardowy"? Poza tym drughi link prowadzi i tak do pierwszego, po co więc podałeś 2 linki?

Dodałem na stronie:
Kod
ini_set('default_charset', 'UTF-8');

Zmieniłem każde ISO na utf-8 w pliku php.ini, w bazie mam ustawione domyślnie wszystko na utf_8_polish.

Co jeszcze do cholery!?
darko
Jeszcze chociaż minimum kultury, nie wykrzykuj, jeśli prosisz o pomoc
  1. mysql_query('SET character_set_connection=utf8_polish_ci');
  2. mysql_query('SET character_set_client=utf8_polish_ci');
  3. mysql_query('SET character_set_results=utf8_polish_ci');
  4. mysql_query(' SET NAMES utf8 ');
Etil
Przecież nie wykrzykuję na ludzi którzy mi pomagają, tylko na ten cholerny skrypt.

Dodałem to na początku pliku i dalej to samo = dodało ł jako Å itd!
darko
Dobra, zrobię Ci checklistę, a Ty zaznacz ptaszkami wszystkie pozycje:
- meta charset na stronie (<meta http-equiv="content-type" content="text/html; charset=utf-8" />)
- kodowanie plików skryptów php /widoków (ogólnie wszystkich plików z kodem - edytor np. notepad++ kodowanie utf-8 bez bom)
- kodowanie dla połączenia z bazą (to, co podałem) V
- kodowanie ustawione albo dla całej tabeli albo dla pól tekstowych (w bazie)
Etil
Oprócz tego co napisałeś, to dodałem:

Kod
ini_set('default_charset', 'UTF-8');


W bazie, wyeksportowałem ją i mam chyba z conajmniej kilka razy: utf8_polish_ci + SET NAMES utf8 i dalej jest tak samo jak było... Czy to możliwe by był jakiś inny powód?!
emajl22
po połączeniu z bazą daj:
  1. mysql_query("SET NAMES UTF8");

w bazie ustaw kodowanie na utf8_general_ci

w plikach kodowanie utf8 bez bom

meta utf-8

musi działać

http://forum.php.pl/index.php?showtopic=18...mp;#entry895141
biggrin.gif
hipekhop
No i o ile możesz deklarować kodowanie takie, a nie inne, to pliki mogą mieć kodowanie inne, niż zadeklarowane w meta.
NOTEPAD ++ polecam, fajnie się w tym pisze, a i kodowanie na utf-8 możesz wygodnie zmienić. Naprawdę zmienić, a nie tylko zmienić tekst w meta wink.gif
Etil
Ale zmieniłem kodowanie, nie tylko w meta, ale też w menu notepada!! Tak jak napisał emajl22 też zmieniłem spowrotem na UTF8_general_ci i nic! Krzaczki(przy dodawaniu nowych rekordów) nawet nie zmieniły się na inne, a co doiero na polskie znaki.
by_ikar
Zapytam się inaczej, kodowanie tylko z bazy jest zepsute, ale jak zapiszesz w pliku "ąśżźćęłńó" to wyświetli się to normalnie czy też jest kodowanie zwalone ?
Etil
O! W bazie wyświetla: "ąśżźćęłńó", ale na stronie, po wczytaniu: ąśżźćęłńó. Więc rozumiem że wiesz jak to rozwiązać?

Więc, wie ktoś czy nie? wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.