2012-04-05 12 views
0

Ich habe ein Problem mit der Codierung auf deutschen Website. Ich habe einen Text:PHP-Codierung Probleme mit Anführungszeichen ("") und andere Sonderzeichen

„Eröffnungsfeier FIS Alpine Ski WM 2011“

Wenn dieser Text in der Datenbank gespeichert ist ich? anstelle dieser Zitate.

Ich habe versucht,

header("Content-Type: text/html; charset=utf-8"); 
mb_internal_encoding("UTF-8"); 
setlocale(LC_ALL, 'de_DE.utf-8'); 

Am Anfang der Datei ohne Erfolg platzieren.

Als ich

verwendet habe
mysql_set_charset('utf8', $connect); 

Aber dann, wenn das Einfügen von Text oben nach wie erste Zeichen Erreichen ö der Rest des Textes abgezogen wird.

Der Tabellenzeichensatz und die Sortierung ist UTF-8. Skriptdatei wird als UTF-8 ohne BOM gespeichert.

Ich habe keine Ideen, wo zu suchen.

+0

Scheint du hast es gut gemacht. Könnten Sie einen Link zu der Seite bereitstellen? Haben Sie ein http-äquivalentes Meta-Tag außer utf-8 festgelegt? Ich würde die Seite überprüfen, die den Text in die Datenbank einfügt. – martinstoeckli

+1

Veröffentlichen Sie auf einem selbst verwalteten Webserver? Vielleicht hast du vergessen, das locale in cause hier zu erzeugen (editiere '/ etc/locales.gen', kommentat was immer du willst, dann' locale-gen' als root), es ist mir oft passiert :-) –

Antwort

0

Die Dinge, die ich tat, halfen. Vor allem mysql_set_charset('utf8', $connect);. Das Problem war, dass ein anderer unerwünschter Code von einem anderen Programmierer (utf8_decode) übrig war. Sieht so aus, als könnte er nicht anders mit utf-8 umgehen.

Ich habe auch herausgefunden, dass mysql_set_charset('utf8', $connect); nicht wirklich benötigt wird, wenn Sie von Anfang an mit der Codierung konsistent sind.

1

1) Überprüfen Sie das Schema Ihrer Datenbank - sind die Textfelder zum Speichern von UTF-8 eingerichtet?

2) Es klingt wie die Seite Buchung dieses Skript sendet nicht UTF-8. Hat es den richtigen Content-Type Header? Was zeigt echo urlencode($var)? (Das ist ein ordentlicher Hack, um die rohen Bytes zu sehen, die Sie bekommen)

+0

Der Tabellenzeichensatz ist UTF8. Fileds haben eine Sortierung von utf8_general_ci. –

+0

Aktualisierte Antwort mit einer anderen möglichen Lösung – Cal

Verwandte Themen