2011-04-16 12 views
8

Zajmuję się tworzeniem mojej pierwszej strony internetowej dla francuskiego klienta i mam masywne problemy z akcentami wyświetlanymi jako "?". Po googlowaniu przez kilka dni, wydawało mi się, że rozumiem, ale problemy nadal występują.Kodowanie znaków dla francuskich akcentów

Aby uprościć go, wytłumaczę tylko nagłówki poczty elektronicznej (wiadomość zawiera francuski akcent)

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

Próbowałem przy użyciu zestawu znaków UTF-8 i ISO-8859-1, ale wciąż otrzymuj tego typu wiadomości e-mail:

Merci pour votre intérêt pour les tee shirts. 

Czy ktoś może pomóc? Mam wszędzie te problemy z mySql, HTML, PHP wszędzie.

Dzięki.

+0

Wygląda na to, że problem dotyczy wejścia. Musisz wiedzieć, jaki zestaw znaków znajduje się w tekście wejściowym, a może go przekonwertować. Nie jestem pewien, jak to zrobić. –

+0

Dzięki. To właściwy kierunek. – denislexic

Odpowiedz

9

Jeśli intérêt pokazuje się jako intérêt prawdopodobnie (to znaczy krótki korupcji z powodu podwójnego kodowania) mają kodowanie UTF-8 text wykazanie się tak, jakby był ISO-8859-1.

Upewnij się, że nagłówki są poprawnie uformowane i przedstawiają treść jako zakodowaną w formacie UTF-8.

+0

Prawdopodobnie masz rację. Mam funkcję, która konwertuje znaki akcentowane na encje html, a następnie wyświetla zawartość w iso-8859-1. Zobaczę. – denislexic

+0

Zakończyłem to po prostu umieszczając nagłówek utf-8 i usuwając kodowanie, które miałem. Wydaje się działać teraz. dzięki. – denislexic

+0

Fantastyczny połów. Nie zdawałem sobie sprawy, że ten szczególny rodzaj artefaktowania postaci był związany z wysyłaniem UTF-8 jako ISO-8859-1. W Railsach 3 użyłem send_data do wysłania pliku z akcentami. Musisz tylko dodać "charset = utf-8" do parametru: type. Słodkie! –

4

Po pierwsze, ponownie ustaw zestaw znaków w nagłówku UTF8.

na swojej stronie, użyj utf8_encode() gdzie stosowne, aby upewnić się wartości pochodzące z bazy danych lub plików zewnętrznych są poprawnie zakodowany (spróbuj ustawić kodowanie pól w bazie danych do UTF8 również)

również wziąć spójrz na funkcję htmlentities(), aby przeanalizować znaki specjalne w elementach html, które mogą również rozwiązać problemy z kodowaniem.

+0

Dam ci szansę i dam ci znać. dzięki. – denislexic

Powiązane problemy