PHP MySQL mit Latin1(iso-8859-1) trotz UTF-8-Einstellungen

Wieder einmal habe ich eine seltsame und komplizierte problem.

Arbeite ich mit der Umstellung meiner MySQL-Datenbanken (und alles andere auf meinem server für diese Angelegenheit) auf UTF-8 zu vermeiden, um text zu konvertieren, wenn immer und setzen den text in den verschiedenen Datenbanken.

Ich glaube, ich habe teilweise gelungen, weil SHOW VARIABLES LIKE 'character_set%' gibt:

character_set_client utf8 
character_set_connection utf8 
character_set_database utf8 
character_set_filesystem binary 
character_set_results utf8 
character_set_server utf8 
character_set_system utf8

Aber noch mysql_client_encoding($con); zurück latin1 und in der Ausgabe alle Sonderzeichen ersetzt, mit �. Mein Fazit ist, dass der client oder der Verbindung zwischen PHP und die MySQL-Datenbank mit latin1, obwohl ich schon immer die Angabe von utf-8 in der Dokument-header und in meinem.ini mit dem folgenden code:

character-set-server = utf8
character-set-client = utf8
default-character-set = utf8

edit: ich habe die obigen Einstellungen unter [client], [mysqld] und [mysql]

Wenn ich mysql_query('SET NAMES utf8;'); oder mysql_set_charset("utf8"); dem text zeigt richtig, aber für mich ist das nicht ein sollution, nur eine temporäre Lösung.

Weiß jemand, wie man Kraft PHP (oder was auch immer es ist-Rückkehr in latin1) verwenden utf-8?

Sollte ich erwähnen, dass ich mit Windows 2003 Server und Apache 2.

  • Ich sollte darauf hinweisen, dass die mysql_xxx() Funktionen sind als veraltet und sollte nicht mehr verwendet werden. Das PHP-Handbuch empfiehlt, entweder den Gegenwert mysqli_xx() Funktionen oder die PDO-Bibliothek statt.
InformationsquelleAutor user1571510 | 2012-08-30
Schreibe einen Kommentar