Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php , Mysql kodowanie utf-8
Forum PHP.pl > Forum > PHP
quality
Ustawilem w mysql system porownywania napisow na utf8_general_ci. W bazie zapisuja sie ladnie polskie znaki jak rowniez rosyjskie i inne.
Niestety podczas wyswietlania na stronie w formularzu (SELECT lista wyboru) wyswietlaja sie znaki zapytania.
Oczywiscie ustawilem na stronie kodowanie utf-8 i zapisalem jako UNICODE utf-8.
Nic niepomaga. Moze macie jakiś sposob na to ?
john_doe
sprobuj dac taka mete

<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
albo cp windows 1250
cadavre
Może SET NAMES utf8 jako pierwsze query?
quality
To pierwsze niezadziała, tzn z takim kodowaniem polskie znaki działaja, jednak strona ma obsługiwać wiele języków i potrzebny mi jest utf-8. Jeszcze podpowiem ze jak wpisze bezpośrednio na stronie to wszystko jest ok, czyli index.php i skryptysa prawidłowo kodowane, problem następuje przy wyjsciu z bazy danych mimo iz system porownan jest utf-general-ci. Moze z sama baza cos jest nie tak ?

Co do drugiegiego postu to zabardzo niewiemo co chodzi. Moze ktos mi przyblizy tą metode ?
artur81
Odnoście drugiej metody to chodzi o to żebyś zrobił
  1. <?php
  2. mysql_query('set names utf-8');
  3. ?>

zaraz po funkcji mysql_connect();.

Szczegóły doczytaj sobie tutaj ale wydaje mi się że jest wszystko jasne
quality
Juz niby wszystko ok.
Dane z bazy pobieraja sie prawidlowo dla wszystkich jezykow.

Dodalem na poczatku:
  1. <?php
  2. mysql_query('SET CHARACTER SET utf8');
  3. ?>


Jednak gdy chce zmienic polskie czcionki np. na zwyczajne bez ogonkow to znów pojawiaja sie krzaczki.
Moja funkcja :
  1. <?php
  2. function changecharacter($data)
  3. {
  4. $change=strtolower($data);
  5. $change2=strtr($change," ęóąśłżźć/ç","_eoaslzxc_c");
  6. return $change2;
  7.  
  8. }
  9. ?>

Głównie chodzi o to ze nie chce robic odnosnikow po numerach id tylko nazwach (dla pozycjonowania), i tutaj pojawia sie problem bo trzeba nazwy z polskimi znakami czy zagranicznymi zamieniac na normalne. Probowalem tez obok nazwy w bazie stworzyc rekord "link", ale to mi sie wydaje takie glupie obejscie sprawy.
Moze jakies inne sposoby na to są ?

Hmm w zasadzie troche zamienia ale 2 litery dalej, oraz zamienia "ą" na "lz" czyli 2 litery. Co jest grane :/
Przyklad:
AĄąęłź
al�lzlox�x�

Jesli chodzi o kodowanie na stronie to jest wszystko wpozadku, jak i kodowanie znakow w funkcji.
[BoMbGaD]
znikaja ci polskie znaki po uzyciu funkcji strtolower, poniewaz , podobnie jak wiele innych, nie obsluguje ona poprawnie utf

odsylam do szerszych informacji na ten temat i listy takich niebezpiecznych funkcji

http://www.phpwact.org/php/i18n/utf-8
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.