Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z pytajnikiem i ogonkami - polskie znaki i MySQL
Forum PHP.pl > Forum > Bazy danych > MySQL
uhutaf
Co prawda dopiero zaczynam programować w php (około 4miesięcy), ale rozumiem dużo. Otóż mam taki problem, który zdarza się często. Otóż piszę stronę gazetki szkolnej, na której są pozdrowionka. Polega to na tym, że osoba wpisuje w formularzu kim jest, a następnie pisze dla kogo to pozdrowienie jest. Do bazy danych wysyłam rekord z dwoma polami - jednym o nazwie od, a drugim dla. Abyście lepiej się wczuli, podam dodatkowo, że moja strona jest robiona w http://www.cba.pl, a dokładniej http://cba.pl/panel/tools/filemanager/. Używam także ich PMA -> http://cba.pl/pma/. A więc do sedna...
Problem w tym, że niektórzy mogą chcieć użyć znaków polskich (z ogonkami). Niestety w bazie danych zapisuje mi się nie jako krzaczki (popularny problem), a jako znaki zapytania... Oto moje dokładniejsze dane bazy danych i systemu kodowań:

  • Serwer: mysql.cba.pl via TCP/IP
  • Wersja serwera: 5.0.77-1-log
  • Wersja protokołu: 10
  • System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
  • System porównań dla połączenia MySQL: utf8_general_ci

A oto kodowania dla tabeli (próbowałem różnie pozmieniać - nic nie daje :/ ):
Metoda porównywania napisów: latin1_swedish_ci

A na stronie, w znaczniku meta mam wpisane:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />

Wiem, że wszystko jest inne, ale próbowałem różnie zrobić. Jeszcze jedno - w tym PMA nie ma iso-8859-2...

A więc co zrobić, żeby moja strona przynajmniej jako-tako odczytywała znaki polskie z ogonkami?...
Błagam pomóżcie , bo ja już sciana.gif ... Z góry dziękuję.
erix
A raczyłeś poszukać na forum? Temat wałkowany dziesiątki razy.
uhutaf
Tylko, że nie znalazłem niczego co w moim przypadku by rozwiązało powyższy problem...
Na przykład tu -> http://forum.php.pl/index.php?showtopic=12...mp;#entry646027 -> mi nie pomaga... :/
Temat: Polskie znaki po ODBC -> to samo....... Przeszukałem 4 strony :/
erix
A wiesz, że po tych zmianach dane trzeba zaimportować jeszcze raz?
uhutaf
Wiem... Aż tak niedoświadczony nie jestem ;P
werian
Po połączeniu z bazą wyślij do MySQL zapytanie :

  1. mysql_query("SET NAMES 'utf8'") OR die(mysql_error());


EDIT: zmień także metodę porównywania tabeli na utf8_general_ci

Przykład:

  1. mysql_connect("localhost","uzytykownik","haslo") OR mysql_error();
  2. mysql_query("use katalog") OR die(mysql_error());
  3. mysql_query("SET NAMES 'utf8'") OR die(mysql_error());
  4. $sql= mysql_query("twoje zapytanie") OR die(mysql_error());
  5. while($wynik = mysql_fetch_array($sql))
  6. {
  7. echo $wynik[0]."<br>".$wynik[1]."<br>".$wynik[2];
  8. }


Zapytanie "ustawia" wstawiane znaki do bazy na kodowanie utf.

jmail
same eugeniusze widzę.....

zamień

  1.  
  2. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  3.  


na

  1.  
  2. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  3.  


i jak się łączysz przez ftp to nie zapomnij w edytorze zmienić kodowania na UTF-8
uhutaf
Dziękuję bardzo smile.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-2024 Invision Power Services, Inc.