Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: polskie znaki w MySql
Forum PHP.pl > Forum > Bazy danych > MySQL
borpaw
Witam

Wpisuję do bazy danych wyrazy zawierające polskie znaki, niestety w bazie zapisują się krzaki

Pliki strony mam w kodowaniu UTF-8
Baza jest w kodowaniu utf8_general_ci
Metoda porównywania napisów utf8_bin

Przed wpisaniem tekstu do bazy następuje taka obróbka

  1.  
  2. $tekst = nl2br($tekst);
  3.  
  4. $tekst = preg_replace("/\s+/", " ", strip_tags($tekst));
  5. $tekst = nl2br($tekst);
  6. $frazy = explode(" ", $tekst);
  7.  

próbowałem zmieniać te kodowania i cały czas to samo
Jak to ustawić?
TheTester
A sprawdzałeś czy któraś z funkcji PHP nie powoduje problemów? Lub inaczej, czy przed dodaniem do bazy, ale zaraz po obróbce, tekst jest poprawny?
Strzelam, ale kiedyś miałem problem z preg_replace i polskimi znakami.
borpaw
niestety powyłączałem wszystko nawet explode i to samo jest
TheTester
To jeszcze dwie rzeczy przyszły mi do głowy.
Ten tekst jest z formularza? Jeśli tak, to czy dałeś mu atrybut accept-charset?
Czy plik, który to przetwarza na pewno jest zapisany jako utf-8?

Możesz też spróbować (jeśli nie zrobiłeś tego do tej pory) ustawić takie parametry zaraz po połączeniu do bazy danych:
  1. mysql_query("SET NAMES 'utf8'");
  2. mysql_query("SET CHARACTER_SET 'utf8'");
borpaw
zadziałało dzięki, nie wiesz jakie najlepiej kodowanie bazie ustawić?
TheTester
Najlepiej? To zależy od tego co tam będziesz trzymał. Ja osobiście trzymam się utf-8 od kiedy MySQL potrafi sobie w końcu normalnie z tym radzić. winksmiley.jpg
Osobiście używam utf8_general_ci, ale jak będziesz miał tylko polski język, to chyba lepszym byłby utf8_polish_ci, bo dzięki niemu nie będzie problemu przy sortowaniu gdy wyrazy zaczynają się od polskich liter.
borpaw
no ma być głównie na angielski ale polski też sie może zdarzyć, a metoda porównywania napisów?
TheTester
Może ujmę to tak: wszystko w bazie danych (i nie tylko) mam poustawiane na utf8 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-2025 Invision Power Services, Inc.