Gdy widzę dane przechowywane w bazie danych mysql za pomocą phpmyadmin, znaki są przechowywane dokładnie tak samo jak é ç, jednak gdy używam php do wyświetlania tych danych na dokumencie HTML, który ma następującą strukturę :UTF-8 Francuski format znaków akcentowanych
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
</body>
</html>
mam kwadrat zamiast znaku akcentem, jednak nie mam tego problemu z żadnymi akcentowane znaki na zawartości statycznej, które nie zostały załadowane z MySQL na tej samej stronie.
kiedy widzę na kodzie źródłowym strony, że wydają się być identyczne! na przykład:
części danych statycznych na kodzie źródłowym wyświetlanych jako:
éçà
części danych pochodzenia MySQL:
éçà
Próbowałem zastępując
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
z
<meta http-equiv="Content-Type" content="text/html; charset=windows-1552" />
iw rezultacie otrzymałem poprawkę mysql, statyczną z kwadratami!
dowolne podpowiedzi?
Wygląda na to zagadnienie błędną. Może Twoje sterowniki DB nie używają UTF-8? Fakt, że dane pochodzące z DB pokazuje OK po zmianie na "Windows-1552" i pliki statyczne nie mogą oznaczać, że plik źródłowy jest (poprawnie) w UTF-8, ale dane z twojego DB przybywa w niewłaściwym formacie kodowania. Cokolwiek się dzieje, trzymaj się UTF-8. – ubik
Dziękuję za odpowiedź, sprawdziłem bazę danych i stwierdziłem, że sortowanie jest ustawione na "latin1_swedish_ci", czy to może być źródłem problemu? – Mbarry
Tak, to jest źródło problemu, przechowujesz swoje dane w ascii w mysql, ale potem próbujesz pokazać je jako utf8 w swoim html .. – Nelson