Suse 11.2 Umlaute Kaputt

MySQL, PostgreSQL, SQLite
amiga1200
Posts: 208
Joined: 2007-01-13 19:58

Suse 11.2 Umlaute Kaputt

Post by amiga1200 » 2010-01-10 21:39

Ich habe schon zig Suse Installation hinter mir. (Suse 8-11.0)

Nun musste ich einen neuen Server aufsetzen, dachte nehme mal Suse 11.2
Alles installiert, und fast keine Probleme außer (Unter Yast funktioniert der Software Management nicht, nur unter KDE)
Aber das Hauptproblem, die Umlaute, die aus MySQL kommen, werden kaputt im Web angezeigt.
Ich habe direkt die /var/lib/mysql Dateien genommen,
aber auch der Umweg über den alten Server Export-Import der DB, >wieder kaputte Umlaute.
schaue ich mir die Export Datei an, sind die Umlaute heil. (insert DB set a=‘küche‘)
Natürlich weiß ich, dass es ein utf-8 Problem ist, setze ich im Quellcode
META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8"
sind die Umlaute aus der DB wie von Geisterhand richtig, aber dafür die Umlaute
Im Quelltext, die nicht aus der DB kommen kaputt.

Fehlerquellen:
PHP ist nun 5.3 vorher 5.1.
Mysql ist etwas neuer

Hat jemnad eine Idee?
Kann man PHP oder Myqsql umstellen utf-8 = YES / NO

EdRoxter
Posts: 483
Joined: 2006-01-06 03:23
Location: Neben Bonn

Re: Suse 11.2 Umlaute Kaputt

Post by EdRoxter » 2010-01-10 22:44

Dann kommen die Umlaute aus der DB definitiv in UTF8 daher. In dem Fall sollte es reichen (und wäre wohl auch besser), wenn du den Meta-Header drinlässt und deine PHP-Skripte alle einmal von (wahrscheinlich) ISO8859 in UTF8 konvertierst. Entsprechende Howtos finden sich zuhauf im Netz.

Optimal wäre es allerdings sowieso, im HTML/XHTML-Code keine Umlaute, sondern die entsprechenden Entities (also ü statt ü) zu verwenden.

amiga1200
Posts: 208
Joined: 2007-01-13 19:58

Re: Suse 11.2 Umlaute Kaputt

Post by amiga1200 » 2010-01-11 10:31

Auf einer Konsole Mysql >PW
set global character_set_results=latin1; (kein Felher von Mysql)
bewirkt leider nichts.

Du könntest mir aber erklären, wie Du es geschafft hast, den dump nach utf8 z bringen.

ich habe noch einen alten Suse11.0 Server, wo alles richtig läuft, dort habe ich über PHPMyadmin ein Export über alle Tabellen gemacht, (unter Vista)
copy (Strg c) auf den Suse11.2 Server auch über PHPmyadmin die DB ausgewählt, SQL aufführen, das Kopierte dort eingefügt und ausführen.
schaue ich mir den Import-Text an, ist alles richtig
aber über mein PHP-Programm nicht mehr.
Auch PHPmyadmin zeigt der Text in der TB korrekt an wohl wegen utf8 im Quelltext, vielleicht konventiert PHPmysql vor dem Import.


Zeigt man sich große Webseiten wie bild.de an, haben die alle richtig Umlaute im Quelltext.


Mein Status-Mysql von Suse 11.0 (Umlaute heil) zeigt:
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock

der neue Server Suse 11.2
Server characterset: utf8
das hatte ich auch schon über die my.conf auf latin1 bekommen, aber das brachte auch nichts

amiga1200
Posts: 208
Joined: 2007-01-13 19:58

Re: Suse 11.2 Umlaute Kaputt

Post by amiga1200 » 2010-01-11 11:11

Also musst Du das auch in der Connection definieren, dass Du latin1 sprichst.

Also im :

Code: Select all

 $conn_id = mysql_connect($host,$root,$pw);
  mysql_select_db($database,$conn_id);


und wie?

und dann wieder die My.conf ändern ?

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Suse 11.2 Umlaute Kaputt

Post by Roger Wilco » 2010-01-11 11:15

amiga1200 wrote:und wie?

Einfach eine Abfrage mit "SET NAMES '<character set>'" absetzen, siehe http://dev.mysql.com/doc/refman/5.1/en/charset.html.