Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Kodowanie :/
Forum PHP.pl > Forum > Przedszkole
DREEMus
Screen z phpMyAdmin 3.1.3:
phpMyAdmin

Widok tabel (PMA):
kodowanie tabeli

Widok komórki (PMA):
komórka

widok z komórki mnie zdziwił, żeby to sprawdzić użyłem funkcji z php.net ...
  1. <?php
  2. $link = mysql_connect ('localhost', 'user', 'pass');
  3. $charset = mysql_client_encoding ($link);
  4.  
  5. echo 'Obecny zestaw znaków to: ' . $charset;
  6.  
  7. // Wynik: latin1
  8. ?>


i teraz myślę, gdzie ustawiłem złe kodowanie ... wszędzie gdzie jest to możliwe (z techniczne strony) jest ustawione UTF-8 ...
zobacze z "mysql_set_charset" czy coś się zmieni ...

----- ----- -----

  1. <?php
  2. $dbPolacz = mysql_connect ('localhost', 'user', 'pass');
  3. $dbKodowanie = mysql_set_charset ('UTF8');
  4. $dbWybierz = mysql_select_db ('dreemus');
  5. $dbWynik = mysql_query ('SELECT * FROM tabela WHERE id = 1')
  6.    or die ('Błąd!');
  7. $row = mysql_fetch_assoc ($dbWynik);
  8.  
  9. echo 'Obecny zestaw znaków to: ' . mysql_client_encoding () . '<br />';
  10. echo $row['powitanie'];
  11. ?>


Teraz w przeglądarce pokazało mi krzaczki, ale to dobrze ... teraz wiem, że mam dobre kodowanie winksmiley.jpg
Wszędzie widzę polskie znaki biggrin.gif

Tylko, nadal nie rozumiem, dlaczego kodowanie musiałem ustawić podczas połączenia, skoro jest i było ustawione na UTF-8 ... wszędzie ...
thomson89
Czasami php nawiązuje połączenie z bazą w innym kodowaniu niż jest ustawione w bazie.
Zyx
MySQL żąda ustawiania kodowania również dla połączenia sieciowego, by wiedzieć, w jakim kodowaniu utworzone są wiadomości przychodzące do serwera oraz w jakim powinien on zwracać informacje. Stąd jego ustawienie jest wymagane, gdyż w większości systemów domyślnym jest kodowanie "latin1". Prawdę mówiąc nigdy nie przyglądałem się temu, jak to w rzeczywistości funkcjonuje (jakoś nie przyszło mi to do głowy smile.gif), być może tylko rzutowanie z UTF-8 na kodowania ISO nie działa z wiadomych powodów - nie da się odwzorować poprawnie unikodu na takie kodowanie. Niemniej znalazłem swego czasu taki ręcznie zrobiony przez kogoś na podstawie dokumentacji diagram:

http://public.m-plify.net/mysql/MySQL_Charset_Handling.pdf

A jeśli jeszcze chcesz mieć pełen szpan i wyświetlić unikodowe znaki na stronie, to musisz jeszcze wysłać odpowiednie nagłówki HTTP do przeglądarki 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.