Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziwne kodowanie polskich znaków, MySQL
rugby
post
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 1
Dołączył: 21.05.2009

Ostrzeżenie: (0%)
-----


Zauważyłem, że w mojej bazie danych MySQL polskie znaki zachowywane są w dziwny sposób:

Kod
"Ä…"=>"ą"
"ć"=>"ć"
"Ä™"=>"ę"
"ó"=>"ó"
"Å‚"=>"ł"
"Å„"=>"ń"
"Å›"=>"ś"
"ż"=>"ż"
"ź"=>"ź"
"Å�"=>"Ł"
"Ó"=>"Ó"
"ü"=>"ü"
"ä"=>"ä"
"Å‘"=>"ö"
"Å�"=>"Ö"

Strona, która na moim serwerze wyświetla dane z bazy ma kodowanie UTF-8 i wyświetla znaki poprawnie. Kiedy zrobię zrzut bazy i zaimportuję go na inny serwer przez phpMyAdmin, to polskie znaki mają postać niepoprawną mimo takiej samej strony wyświetlającej je.

Jakim programem skonwertować te niepoprawne znaki na ich odpowiedniki w UTF-8?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Roly
post
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 7
Dołączył: 8.12.2003
Skąd: Andrychów

Ostrzeżenie: (0%)
-----


Zawsze mnie dziwią te problemy z kodowanie znaków w bazach danych a już szczególnie wówczas jak dane mamy wszędzie w utf-8. Przecież recepta na to jest prosta:
- zwracaj uwagę na kodowanie znaków przy połączeniu (w phpMyAdmin zaraz po zalogowaniu masz info z jakiego rodzaju kodowania korzystasz, w aplikacji wystarczy zapytanie)

  1. SET NAMES 'utf8';


lub

  1. <?php
  2. mysql_set_charset('utf8');
  3. ?>

- jeżeli tworzysz tabelki ustawiaj im kodowanie na utf8
- jeżeli tworzysz kolumny ustawiaj im również kodowanie na utf8
- nie otwieraj zrzutów bazy danych notatnikiem tylko jakimś innym edytorem potrafiącym sprawdzić sobie kodowanie pliku tekstowego
- uważaj na edytory bo niektóre wstawiają do utf8 znacznik kolejności bajtów (BOM) który w UTF-8 jest nieobowiązkowy

PS
Jeżeli masz już zrypany zrzut bazy (czytaj krzaki w pliku) to poszukaj programu Gżegżółka (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

PS 2
Dla pewności wstawi jeszcze na początku pliku w którym wysyłasz dane do przeglądarki

  1. <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3. ?>


Zmień oczywiście typ zwracanego dokumentu jeżeli jest nie poprawny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
No i jeszcze dla pewności w IE

  1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Ten post edytował Roly 3.06.2009, 13:40:10
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 1.04.2026 - 18:35