Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit MySQL Kodierung [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit MySQL Kodierung


 
PHPler
26-11-2007, 11:02 
 
Hallo!

Mein Hoster setzt eine MySQL Datenbank mit der Version "4.1.22-log" ein. Ich bin nun dabei, in dieser Datenbank Meta-Tags für meine Seiten zu speichern. Das Problem ist jetzt die Kodierung, dass mir die Datenbank aus dem Komma ein ÿ macht.

es wird also aus 'index,follow' 'indexÿfollow'.

Das Feld ist ein enum Feld. Setze ich die Kodierung auf "utf8_general_ci" wie bei der Datenbank auf dem Heimrechner, so wird aus dem , ein ?.

Wie krieg ich das nun hin, dass das , ein , bleibt?

Danke schonma...

 
unset
26-11-2007, 11:08 
 
Benutze doch bitte statt dem Zeichen "," das Wort "Komma". Das macht das ganze sehr viel leserlicher.

 
PHP-Desaster
26-11-2007, 12:06 
 
Original geschrieben von unset
Benutze doch bitte statt dem Zeichen "," das Wort "Komma". Das macht das ganze sehr viel leserlicher. Ist aber keine Lösung für ein Zeichensatzproblem!!

Datenbank, Tabelle, Ausgabe und Datenbankverbindung UTF-8?

 
PHPler
26-11-2007, 12:10 
 
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_results utf8
character_set_server latin1
character_set_system utf8
collation_connection utf8_unicode_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci

Das sind die Einstellungen der MySQL Datenbank. Ist nicht alles auf UTF8, hab da aber auch keinen Zugriff drauf um das zu ändern. Kann nur wie gesagt bei den Feldern die Kodierung wechseln, und da läuft die trotz UTF8_general_ci nicht...

 
onemorenerd
26-11-2007, 12:34 
 
Und die Ausgabe (HTTP- und Meta-Header)?

 
PHPler
26-11-2007, 13:00 
 
Soweit ich das bei phpmyadmin sehen kann ist es auch auf UTF-8 eingestellt.

 
PHP-Desaster
26-11-2007, 15:14 
 
Original geschrieben von PHPler
Soweit ich das bei phpmyadmin sehen kann ist es auch auf UTF-8 eingestellt. Die Ausgabe deiner Seite ist aber nicht im PHPmyadmin!

Mal ein Set Names als erste Query abgesetzt?

 
PHPler
26-11-2007, 16:42 
 
Das fängt aber schon bei phpMyAdmin an! Wenn ich via phpMyAdmin ein Feld namens robots erstelle mit den Optionen:
'index,follow','index,nofollow','noindex,follow','noindex,nofollow'
Wird daraus eben ein
'indexÿfollow','indexÿnofollow','noindexÿfollow','noindexÿnofollow'
Füge ich nun einen Eintrag in das Feld mit meinem CMS ein, so bleibt dieses leer, da ein , eben kein ÿ ist.

Mein CMS selbst ist mit "iso-8859-1" kodiert. Eine Kodierung mit UTF-8 ändert auch nichts an dem Problem, außer dass dann sämtliche Sonderzeichen als ? kodiert werden...

Und was meinst Du mit ein Set Names?

 
PHP-Desaster
26-11-2007, 20:37 
 
Einfach mal die SuFu nutzen, beispielsweise hier (http://php-resource.de/forum/showthread.php?s=&threadid=63328&highlight=set+names).

 
PHPler
26-11-2007, 22:39 
 
Achso sorry, okay! Aber wie gesagt, das Problem geht ja von phpmyadmin aus (siehe Anhang). Andere Codierungen (auch UTF-8) bringen nichts. Ich werd das wohl durchnummerieren und ne Switch Abfrage reinhauen, wird mir sonst zu komisch...

 
tontechniker
26-11-2007, 23:11 
 
Lös lieber das Problem, du hast genug Hinweise bekommen, statt einen Workaround zu bauen.

 
PHPler
27-11-2007, 07:25 
 
Leichter gesagt als getan! Ich hab alles was hier angesprochen wurde durchprobiert, ohne Erfolg. phpMyAdmin ist bei meinem Hoster im übrigen vorinstalliert, d.h. ich hab selbst nichtmal da drauf zugriff. Naja mal gucken, fürs erste hab ich das Script erstmal dennoch umgebaut...

 
PHP-Desaster
27-11-2007, 09:11 
 
Wie hast du dein enum-Feld denn erzeugt? Wenn ich bei mir im MyAdmin ein enum mit Kommata in den Werten erstelle, ist dies - natürlich - korrekt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:11 Uhr.