Problem mit UTF8 und MySQL
basti_p
- sonstiges
0 ChrisB0 Sven Rautenberg0 basti_p
0 dedlfix
Hallo,
ich habe ein seltsames Problem:
ich möchte tschechische Texte in eine MySQL-Tabelle schreiben.
Die verarbeitenden PHP-Dateien sind alle UTF8-codiert, die MySQL-Verbindung wird mit
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
auch in den entsprechenden Modus versetzt.
Wenn ich mir das Statement ausgeben lasse, wird alles korrekt angezeigt:
INSERT INTO _cms_text_content_ SET entry_parent_id=50,cat_1='module', cat_2='katalog', name='name_lang', content='skupinový či individuální ',language='cz'
ABER: in der Tabelle steht nach dem Schreibvorgang:
skupinový ?i individuální (mit Fragezeichen);-(
Habt ihr einen Tipp für mich?
Danke und Grüße Basti
Hi,
ABER: in der Tabelle steht nach dem Schreibvorgang:
skupinový ?i individuální (mit Fragezeichen);-(
Und wie hast du das ueberprueft?
MfG ChrisB
Moin!
ich möchte tschechische Texte in eine MySQL-Tabelle schreiben.
Die verarbeitenden PHP-Dateien sind alle UTF8-codiert, die MySQL-Verbindung wird mitmysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");auch in den entsprechenden Modus versetzt.
Sind denn auch die Textfelder auf UTF-8 gesetzt worden?
Dein Problem sieht nämlich so aus, als ob der Standard "Latin1" (=IS=-8859-1) belassen wurde, und in diesem Encoding sind nicht alle tschechischen Zeichen darstellbar. Logisch, dass MySQL dann nicht codierbare Zeichen irgendwie "wegwerfen" muß.
- Sven Rautenberg
Hallo,
die Textfelder in der Tabelle sind alle auf Kollation "utf8_general_ci" gesetzt.
Ich habe aber eben bemerkt, dass das Speichern meiner PHP-Datei, welche die Query ausführt, als UTF8 nicht funktioniert. Nach jedem neuen Öffnen (z.B. mit Textpad) steht die Kodierung wieder auf "ANSI". Was kann das denn sein???
Grüße Basti
echo $begrüßung;
Die verarbeitenden PHP-Dateien sind alle UTF8-codiert, die MySQL-Verbindung wird mit
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
Du bist dir sicher, dass du die Auswirkungen von SET CHARACTER SET haben möchtest? Auf welche Kodierung ist denn die Datenbank eingestellt, in der deine Tabelle liegt?
Es ist nie sinnvoll, SET NAMES und SET CHARACTER SET gleichzeitig verwenden zu wollen, denn das eine überschreibt die Änderungen des anderen und umgekehrt. Desweiteren ist SET NAMES in 99% der Fälle das Mittel der Wahl.
Ist deine PHP-Version so alt, dass du kein mysql_set_charset() verwenden kannst?
echo "$verabschiedung $name";