Hallo,
ich möchte die Datenbank (MySQL) einer Anwendung für Mehrsprachigkeit umstellen und nutze dafür bekanntlicherweise UTF-8.
Folgende Änderung habe ich vorgenommen: ini-Datei von MySQL:
Apache.conf:
php.ini
in meiner Testdatei: test.php
Danach den Rechner neu gestartet. Jetzt habe ich erwartet, dass mir die Inhalte der DB-Tabelle ordnungsgemäß angezeigt werden, aber statt dessen werden alle Sonderzeichen (chin., russ., griech., ä's, ü's und ö's) als Fragezeichen angezeigt. Die test.php ist als utf8-kodiert abgespeichert. Nun meine Frage: Wieso werden die Sonderzeichnen nicht richtig dargestellt?
Denn wenn ich alle Änderungen rückgängig mache und ein einfaches
nach dem Connect zur Db schicke, funktioniert alles reibungslos.
ich möchte die Datenbank (MySQL) einer Anwendung für Mehrsprachigkeit umstellen und nutze dafür bekanntlicherweise UTF-8.
Folgende Änderung habe ich vorgenommen: ini-Datei von MySQL:
Code:
[ mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
Code:
AddDefaultCharset utf-8
Code:
default_charset = "utf-8"
[mbstring]
mbstring.language = utf-8
mbstring.internal_encoding = utf-8
mbstring.http_input = utf-8
mbstring.http_output = utf-8
PHP:
header( 'content-type: text/html; charset=utf-8' );
$con = mysql_connect( 'host', 'user', 'password' );
mysql_select_db( 'database', $con ); ...
Denn wenn ich alle Änderungen rückgängig mache und ein einfaches
PHP:
mysql_query( 'SET NAMES utf8' );