2010-09-02 26 views
6

mam ten formularz:UTF-8 nie działa w HTML tworzy

<form method="post" enctype="multipart/form-data" accept-charset="UTF-8"> 

Ale kiedy złożyć znaku E, to zamienia go w ©.

Dlaczego to nie działa? Tak, baza danych MySQL ma poprawnie ustawione wszystkie zestawy znaków. (Baza danych, tabele.) Jeśli ręcznie umieściłem go w bazie danych przy pomocy Navicat, na stronie wyświetla się dobrze.

Próbowałem także metatagu, ustawiając nagłówek typu zawartości, bez powodzenia.

+0

Jak się wprowadzenie danych formularza do bazy danych? Czy twój język po stronie serwera zachowuje kodowanie UTF-8? – Oded

+0

Czy wyświetlasz swoją stronę jako UTF-8, gdy wyświetlasz ją użytkownikowi? Sprawdź, czy twoje metatagi i nagłówki pasują do siebie. – notJim

+0

Wszystkie pola przechodzą przez mysql_real_escape_string, a następnie są umieszczane w bazie danych za pomocą tego zapytania: mysql_query ("UPDATE" SET' users 'Profil' = '". $ NewProfile. "',' Avatar' = '".mysql_real_escape_string ($ avatar). "'WHERE' ID' =". $ thisUser ['ID']); – Codecat

Odpowiedz

8

w HTML, dodaj meta tag:

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

również dodać ten nagłówek PHP na początku skryptu:

header("Content-Type: text/html;charset=UTF-8"); 

[edycja]:

Jeszcze jedna porada to zapisanie pliku jako kodowania UTF-8 without BOM. Możesz użyć Notepad++ lub dowolnego przyzwoitego edytora, aby to zrobić.

+1

Mają oba, niczego nie zmieniają. – Codecat

+0

Czy masz "nagłówek" u góry strony HTML, gdzie znajduje się formularz? – shamittomar

+0

Tak. * dodatkowe znaki * – Codecat

1

Upewnić masz ustawić zestawianie połączenia do utf8:

SET NAMES utf8 
+0

Już to robię. – Codecat

+0

Czy jest również strona formularza utf-8? Czy próbowałeś też innej przeglądarki/komputera? – aularon

+0

Po prostu wypróbowałem Internet Explorer, ten sam problem. Inni użytkownicy również doświadczają tego problemu. – Codecat