phpbar.de logo

Mailinglisten-Archive

[php] PHP/MySQL - Collate der Verbindung ändern

[php] PHP/MySQL - Collate der Verbindung ändern

Tim Hildebrandt TConnect at gmx.net
Don Jan 24 19:03:11 CET 2008


Hallo Sebastian,
hallo zusammen,


> > auswählen kann, finde das aber gerade nicht wieder, wie ich das
> > konfigurieren kann. Wie kann ich MySQL also anweisen, auch die
> zurück
> > gelieferten Daten gleich in latin1_general_ci und nicht in utf_8
> zu
> > liefern?
> >
> > Hat jemand einen Tipp für mich?
> 
> SET NAMES ...

Ich habe jetzt SET NAMES 'latin1' COLLATE 'latin1_general_ci' am Anfang
meines Skriptes ausführen lassen, aber es klappt irgendwie nicht. Das
entwickelt sich langsam zu einem Problem, zumal es in anderen
Script-Abschnitten vollkommen problemlos funktioniert.

Aufgabe ist, die Inhalte einer Tabellenabfragen via XML an einen anderen
Rechner zu übermitteln.
Die Tabellen, die beteiligt sind, sind beide in latin1 und
latin1_general_ci (auch die Spalten)

Ich lese also die Tabellen aus und verwende 

$datei->addChild("name", utf8_encode($wert)); 

um die aus der Datenbank stammenden Informationen in die XML Datei zu
schreiben. Bei anderen Tabellen funktioniert das auch alles ganz
hervorragend, ich habe dort nirgendwo Probleme mit Sonderzeichen. Wird
alles komplett akzeptiert.

Als Test habe ich mir die problematischen Daten mal in eine Textdatei
schreiben lassen und hier mal überprüft, was da so alles für
Sonderzeichen vorkommen: Ausser den normalen äöü oder ß finde ich
nichts, was Probleme machen könnte. Außer vielleicht das Zeichen "&",
das aber - so dachte ich jedenfalls - gerade durch die Funktion
"utf8_encode()" für XML Dateien aufbereitet wird, *bevor* es mittels
addChild() in die Datei eingefügt wird... oder liege ich da falsch?

Wenn ich vorher - wie in einigen google-Ergebnissen beschrieben -
htmlentities() anwende, zersemmelt mir das die spätere Dropdown-Liste im
entsprechenden Webformular.

Ich hatte erst vermutet, dass der Server in seiner Connection bereits
UTF-8 zurück liefert und ich dann munter in meinem Script die bereits
encodeten Zeichen noch einmal encode, aber das scheint es auch nicht zu
sein, denn dann wären UTF-8 Zeichen auch in der Textdatei vorzufinden.


Hat jemand noch eine Idee, wie ich dem Fehler auf die Schliche kommen
kann?

Liebe Grüße
Tim


php::bar PHP Wiki   -   Listenarchive