Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Kodowanie...
Forum PHP.pl > Forum > Przedszkole
Predator446
Witam...
Jak dotąd z kodowaniem i polskimi znaki dawałem sobie rade lecz napotkałem nietypowy problem i nie mogę go rozwiązać. Mianowicie gdy dodam do bazy rekord z poziomu phpmyadmin'a poprzez polecenie SQL to podczas odczytu tego rekordu zarówno na stronie jak i w bazie są polskie znaki. Gdy dodam rekord poprzez formularz na stronie to w bazie są krzaki lecz na stronie zamienia je na polskie znaki i wyświetla poprawnie, ale to się jeszcze da przeżyć. Problem jest natomiast wtedy gdy mam już w kodzie php w zmiennej konkretny tekst i poprzez jakaś akcje na stronie dodaje rekord z tym tekstem to w bazie są polskie litery natomiast na stronie wyświetla je jako krzaki a wygląda on tak �, to samo jest jeśli w bazie ręcznie wpiszę polskie znaki do rekordu to na stronie widać te krzaki.

W bazie mysql kodowanie mam ustawione na latin2_general_ci, kodowanie strony jest iso-8859-2, na początku po połączeniu z bazą wykonuje zapytanie "SET NAMES latin2"; jednak problem dalej ma miejsce.

Proszę o pomoc...
b4x
  1. <?php
  2. mysql_query("SET NAMES 'latin2'");
  3. mysql_query( "set character set latin2;" );
  4. ?>
Predator446
Próbowałem też tego lecz nic nie daje
b4x
Ja proponowałbym UTF8 nigdy z nim nie ma problemów (bynajmiej ja nie miałem tongue.gif)

Mógłbyś pokazać 1 rekord z phpmyadmina ? - i jak to wygląda na stronie ?
Predator446
W phpmyadmin wyświetla tekst w polu tak "Wiadomość nie może być pusta." a na stronie tak "Wiadomo�� nie mo�e by� pusta."
A z drugiej strony jak w phpmyadmin jest tekst "asdść" to na stronie wyświetla poprawnie "asdść"
trucksweb
zmien kodowanie dla calej bazy a nie dla poszczegolnych tabel, opcja dostepna bo wybraniu Twojej bazy danych i nastepnie "Operacje"... tam masz kodowanie dla calej bazy.
Predator446
Tak też jest zrobione...
trucksweb
to zmien jeszcze kodowanie w samym pliku na EuropaSrodkowa
fran1o
ja tez mialem krzaki w bazie ale zrobilem tak:
1. w bazie mam kodowanie na utf8_unicode_ci
2. W naglowku mam po polaczeniu z baza:
  1. <?php
  2. mysql_query("SET CHARACTER SET utf8");
  3. mysql_query("SET collation_connection = utf8_general_ci");
  4. ?>

3. Na stronach mam kodowanie:
  1. <?php
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. ?>

4. Korzystam z edytora kED i zapisuje dodatkowo pliki w kodowaniu utf-8.

I problemy z krzakami znikly zarowno w bazie jak i na stronie.
pozdro
Predator446
Postanowiłem nie bawić się dalej z tym iso, zmieniłem kodowanie na utf8 i problemy z krzakami znikły zarówno w bazie jak i na stronie. Dzięki za pomoc.

fran1o: masz błąd w znaczniku meta zamiast "charset=utf-8" powinno być "charset=utf8" za dużo o "-" i jeszcze jedno dlaczego w bazie używasz utf8_unicode_ci, a wykonujesz zapytanie utf8_general_ci ?
b4x
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">


- to jest poprawne.


Więc @Predator446 nie wprowadzaj ludzi w błąd winksmiley.jpg
Predator446
to trochę dziwne bo jak mam z "-" to mam krzaki na stronie jak bez niej jest wszystko ok
b4x
Ja mam taki pakiet:


Metoda porównywania napisów utf8_general_ci
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: utf8_unicode_ci


<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + PSPad = 0 krzaków winksmiley.jpg
Predator446
OK problem rozwiązany oczywiście poprawnie ma być z "-" u mnie nie działało ponieważ w pliku konfiguracyjnym serwera miałem jeszcze ustawione AddDefaultCharset na ISO i kłóciło się kodowanie strony.
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.