php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.12.2008, 12:06  
Neuer Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 5
Dennis20 befindet sich auf einem aufstrebenden Ast
Standard phpMyAdmin problem mit Umlaute

Hallo,

ich habe ein Problem mit phpMyAdmin, und zwar werden meine Umlaute wie z.B. ä falsch in der Datenbank angezeigt (ä). Ich habe die Kollation auf utf8_unicode_ci stehen, das mysql standart charset ist ebenfalls utf8.

Beim Auslesen habe ich keine Probleme über php.

Woran kann das nun liegen?
Wäre super wenn mir jemand helfen kann.

Gruß,
Dennis
Dennis20 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.12.2008, 12:07  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Wie werden die Daten denn in die Tabelle eingetragen?
David ist offline   Mit Zitat antworten
Alt 02.12.2008, 12:13  
Neuer Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 5
Dennis20 befindet sich auf einem aufstrebenden Ast
Standard

Hi.

ich habs jetzt zum testen mit

PHP-Code:
mysql_query("INSERT INTO test(b) VALUES('ä')") or die(mysql_error()); 
über eine PHP-Datei gemacht, manuell über phpMyAdmin kann ich ein ä ohne weiteres eintragen.
Mit utf8_decode("ä"); gehts natürlich, aber das sollte ja keine dauerhafte lösung sein, das ich jede variable manuell decoden muss.

Geändert von Dennis20 (02.12.2008 um 12:28 Uhr).
Dennis20 ist offline   Mit Zitat antworten
Alt 02.12.2008, 12:49  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Dennis20 Beitrag anzeigen
Mit utf8_decode("ä"); gehts natürlich, aber das sollte ja keine dauerhafte lösung sein, das ich jede variable manuell decoden muss.
Dann ist Deine Skriptdatei auch in utf-8 abgespeichert?

Der MySQL-Verbindung ist auch ein charset zugeordnet. Soweit ich das gelesen habe, ist das bei der (alten) mysql-Erweiterung von PHP nach dem Verbinden immer latin1. Die Zeichen, die Du per mysql_query() an den mySQl Server sendest werden also immer als latin1 interpretiert (wie sich das ändern lässt, kannst Du dem Link am Ende des Posts entnehmen).
Du schickst utf-8 codierte Zeichen, für ein ä also die Byte-Folge 0xc3 0xa4.
Der Server "weiß", dass über diese Verbindung latin1 Zeichen kommen und interpretiert die beiden Bytes als zwei einzelne Zeichen. Die Daten sollen als utf-8 gespeichert werden (laut collation der Datenbank/Tabelle), also wandelt der Server die beiden Zeichen in ihre utf-8 Darstellung um, 0xc3 0x83 0xc2 0xa4, die utf-8 Darstellung der beiden Zeichen à ¤.

siehe MySQL :: MySQL 5.1 Reference Manual :: 9.1.4 Connection Character Sets and Collations
David ist offline   Mit Zitat antworten
Alt 02.12.2008, 13:06  
Neuer Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 5
Dennis20 befindet sich auf einem aufstrebenden Ast
Standard

Ich hab ja auch collation connection auf utf8_unicode_ci stehen:

Dennis20 ist offline   Mit Zitat antworten
Alt 02.12.2008, 13:25  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dann führ mal bitte
PHP-Code:
<?php
$msql 
mysql_connect('...''...''...') or die(mysql_error());
$result mysql_query("SHOW VARIABLES LIKE 'character%'") or die(mysql_error());
while( 
false!==($row=mysql_fetch_array($resultMYSQL_NUM)) ) {
  echo 
htmlentities("$row[0] = $row[1]<br />\n");
}
aus.
David ist offline   Mit Zitat antworten
Alt 02.12.2008, 13:34  
Neuer Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 5
Dennis20 befindet sich auf einem aufstrebenden Ast
Standard

Code:
character_set_client=latin1
character_set_connection=latin1
character_set_database=utf8
character_set_filesystem=binary
character_set_results=latin1
character_set_server=utf8
character_set_system=utf8
character_sets_dir=/usr/share/mysql/charsets/
Das ist das Ergebnis
Dennis20 ist offline   Mit Zitat antworten
Alt 02.12.2008, 13:38  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
character_set_client=latin1
character_set_connection=latin1
...
character_set_results=latin1
Da ist der beschriebene "Übeltäter".
David ist offline   Mit Zitat antworten
Alt 02.12.2008, 13:42  
Neuer Benutzer
 
Registriert seit: 02.12.2008
Beiträge: 5
Dennis20 befindet sich auf einem aufstrebenden Ast
Standard

Kann ich die Werte einfach in die my.cnf übernehmen?

Wenn ja wohin genau?
Dennis20 ist offline   Mit Zitat antworten
Alt 02.12.2008, 13:46  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Dafür kenne ich mich nicht genug mit php<->mysql aus. Aber im Handbuch steht:
Zitat:
Zitat von http://uk2.php.net/manual/en/mysql.installation.php
Note: If you need charsets other than latin (default), you have to install external (not bundled) libmysql with compiled charset support.
David ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Umlaute und str_replace MatzeMuc86 PHP Tipps 2008 20 22.10.2008 20:41
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
problem beim ausgeben mqs Datenbanken 6 20.08.2008 16:10
Umlaute in Datenbank Eldra PHP Tipps 2008 3 14.05.2008 07:11
XML parsen und Umlaute betterknower PHP Tipps 2008 6 31.12.2007 18:35
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
phpmyadmin: problem beim übertragen von datensätzen Datenbanken 1 16.07.2005 00:05
Problem mit phpMyAdmin PHP Tipps 2005 1 21.05.2005 15:31
[Erledigt] Bitte unbedingt kurz ansehen - Problem mit PHPMyAdmin. Danke PHP Tipps 2005 8 01.05.2005 14:34
[Erledigt] Problem mit phpMyAdmin Datenbanken 5 26.02.2005 20:33
Problem mit phpMyAdmin test022 PHP Tipps 2004 5 18.09.2004 11:09
PhpMyAdmin - Problem PHP Tipps 2004 5 18.07.2004 21:28
Connection Problem bei phpMyAdmin PHP Tipps 2004 1 14.07.2004 15:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
phpmyadmin umlaute falsch, phpmyadmin umlaute, umlaute phpmyadmin, phpmyadmin utf8 umlaute, umlaute in phpmyadmin, mysql phpmyadmin umlaute, mysql umlaute phpmyadmin, phpmyadmin utf8, http://www.php.de/datenbanken/49506-phpmyadmin-problem-mit-umlaute.html, phpmyadmin zeigt umlaute falsch an, mysql kollation umlaute, character_set_client ändern, umlaute mysql phpmyadmin, phpmyadmin zeigt keine umlaute an, phpmyadmin zeigt umlaute falsch, phpmyadmin keine umlaute, umlaute in phpmyadmin falsch, phpadmin umlaute, phpmyadmin umlaut, phpmyadmin umlaute utf8

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum