Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Zeichensatz der Datenbankverbindung anzeigen lassen?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Andreas I.
PostRank 9
PostRank 9
Beiträge: 1464
Registriert: 18.03.2006, 14:36
Wohnort: Hamburg

Beitrag von Andreas I. » 09.03.2010, 23:56

Hallo, wieder mal ein utf-8 Problem...

Wie kann ich mir unter PHP anzeigen lassen, welchen Zeichensatz die gerade aktuelle Verbindung nutzt?

Hintergrund:
Sonderzeichen werden falsch dargestellt.
PHP-Datei ist in utf-8.
Tabelle in der Datenbank ist in utf-8.
PHPMyadmin wird in utf-8 angezeigt und die Daten sind korrekt
Gerenderte Datei im Browser wird in utf-8 angezeigt und die Daten sind kaputt.
Ich schreibe zu Anfang:

Code: Alles auswählen

$link = mysql_connect($sqlserver,$sqluser,$sqlpwd);
mysql_query("SET NAMES 'utf8'",$link);
Und nun will ich wissen:
Hat MySQL es gerafft, dass ich utf-8 Daten will? (scheinbar nicht...)
In welcher Sprache unterhalten sich PHP & MySQL eigentlich gerade? Kisuaheli? Altgriechisch?

Also ich will schreiben:
echo "<!-- [Hier die Befehle zur Anzeige des Zeichensatzes der MySQL-Verbindung] -->";[/code]

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

800XE
PostRank 10
PostRank 10
Beiträge: 5223
Registriert: 02.12.2004, 03:03

Beitrag von 800XE » 10.03.2010, 00:45

Andreas I. hat geschrieben:PHP-Datei ist in utf-8.
ist im HTML(Template) auch irgendwo üöäß
ich denke mal "nein" weil ich denke das die dann auch "kaputt" wären
ich denke deine Datei wird vom Apach in ISO-xxxx-1 ausgeliefert

und ich denke, das Apach "seine" Zeichenkodierung ans PHP gibt und PHP das dann an SQL
meine Seiten sind laut http-Header(nicht html-Meta) in iso-xxx-1 und irgendwo hab ich utf-8 SQLs und es funktioniert .... ohne das ich extra irgendwelche Zeichensatzbefehle an SQL gebe

welchen Charset hast du im http-Header (der hat höhere Priorität als der im html-Meta)
www.chegu.de/AWT/HTTP-Header.html
ähm, an den Host wo ich eben gedacht habe, da hab ich garkein Charset im http-Header ... war aber glaub mal

Andreas I.
PostRank 9
PostRank 9
Beiträge: 1464
Registriert: 18.03.2006, 14:36
Wohnort: Hamburg

Beitrag von Andreas I. » 10.03.2010, 10:42

Laut live http-headers wird beides akzeptiert:
...
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6
Accept: text/html, */*
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
...

Also ISO-8859-1 und utf-8 gleichermaßen. Aber das sagt ja nichts aus, was nun tatsächlich versendet wird.

Umlaute tauchen in der fertig gerenderten Seite durchaus auch in richtig dargestellter Art und Weise auf.
Es ist aber so, dass das PHP-Script mehrere Dateien includiert und am Ende läuft auf der fertigen Seite auch noch AJAX. (Gerade der AJAX-Teil funktioniert utf-8 mäßig nicht ganz richtig und arbeitet aber mit der Datenbank zusammen.)
Andere Teile der Scripts arbeiten auch mit der DB zusammen und geben die Daten korrekt formatiert aus.