Euro-Zeichen in MySQL trotz utf8_decode() nicht darstellbar; Umlaute funktionieren

Hallo!

Mir ist jetzt beim erneuten Ändern der Spalten-Kollationen etwas aufgefallen: In phpMyAdmin wird neben den Spalten überall 'utf8_general_ci' angezeigt. Unter dem Punkt 'Zeilenstatistik' (neben 'Speicherverbrauch') darunter wird allerdings als Kollation weiterhin 'latin1_swedish_ci' angezeigt. Könnte es sein, dass es daran hapert und wie stelle ich das um ...

Auf der Startseite vom phpMyAdmin steht übrigens folgendes:

Server Version: 4.1.20
Protokoll-Version: 10
...
MySQL-Zeichensatz: UTF-8 Unicode (utf8)
Zeichensatz / Kollation der MySQL-Verbindung: utf8_unicode_ci

Müsste also auch passen ...

MfG, Thomas D.
 
Etwas mehr Infos wären Hilfreich.

zB:
  • Was ist der genaue Fehler
  • Welchen Zeichensatz verwendest du und vor allem wo (Datenbank, Verbindung, Skript)
  • Wo tritt der Fehler auf, beim der Abfrage oder bei der Speicherung?
  • Welches Administrationstool verwendest du?
  • and so on ...
 
Mir ist jetzt beim erneuten Ändern der Spalten-Kollationen etwas aufgefallen: In phpMyAdmin wird neben den Spalten überall 'utf8_general_ci' angezeigt. Unter dem Punkt 'Zeilenstatistik' (neben 'Speicherverbrauch') darunter wird allerdings als Kollation weiterhin 'latin1_swedish_ci' angezeigt.
Die Kollation deiner Tabelle (nicht der einzelnen Spalten) steht demnach noch auf latin1_swedish_ci. Das kannst Du ändern, indem Du in der Tabellenansicht, in phpMyAdmin, auf Operationen klickst und die Kollation dort auf utf8_general_ci stellst.

Vermutlich steht auch die Kollation deiner Datenbank auf latin1_swedish_ci oder latin1_general_ci. Ändern kannst Du das in der Datenbankansicht, dort ebenfalls bei Operationen.

Könnte es sein, dass es daran hapert und wie stelle ich das um ...
Meiner Meinung nach nicht. Ich vermute es liegt daran, dass das Charset der HTML-Seite nicht UTF-8 ist.

In HTML/XHTML:
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
In HTML 5:
HTML:
<meta charset="utf-8">

Gruß
 
Also generell kann man das Problem damit lösen, dass man einfach alles als UTF-8 behandelt. Das heißt, dass die Verbindung mit UTF-8 verwendet wird, die Daten in der Datenbank in UTF-8 gespeichert werden und in HTML – wie Raisch schon schrieb – als UTF-8 ausgegeben werden.
 
Oh man, gar nicht mitbekommen, dass der Thread von 2008 ist... ravenstorm hat ihn nur wieder rausgekramt.
 
Ich lasse nun alle Eingaben in HTML-Codes umwandeln und so in die Datenbank eintragen. Bei der Ausgabe aus der Datenbank wird dieses dann wieder decoded.

PHP:
				$search = array('&','€','"',"'",'<','>','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?','?','?',
				'Ä','ä','Ë','ë','Ï','ï','Ö','ö','Ü','ü',
				'Ÿ','ÿ','ß','©','®','™','«','»','•',
				'·','¨','…','¡','¿','¦','§','º','ª','¯',
				'¶','†','‡','°','¢','£','¤','¥','ƒ','±',
				'÷','×','v','?','¹','²','³','´','¸','‰',
				'µ','¬','½','¼','¾','À','Á','Â','Ã','Å',
				'Æ','Ç','È','É','Ê','Ì','Í','Î','Ð','Ñ',
				'Ò','Ó','Ô','Õ','Ø','Œ','Ù','Ú','Û','Ý',
				'Þ','à','á','â','ã','å','æ','ç','è','é',
				'ê','ì','í','î','ð','ñ','ò','ó','ô','õ',
				'ø','œ','ù','ú','û','ý','þ','Š','š','?',
				'?','G','?','?','?','?','T','?','?','?',
				'?','?','?','?','?','?','S','?','?','F',
				'?','?','O','a','ß','?','d','e','?','?',
				'?','?','?','?','µ','?','?','?','p','?',
				'?','s','t','?','f','?','?','?',
				'I','i','G','g','S','s','£');
				$replace = array('&amp;','&euro;','&quot;','&apos;','&lt;','&gt;','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?',
				'?','?','?','?','?','?','?','?','?','?','?','?','?','?',
				'&Auml;','&auml;','&Euml;','&euml;','&Iuml;','&iuml;','&Ouml;','&ouml;','&Uuml;','&uuml;',
				'&Yuml;','&yuml;','&szlig;','&copy;','&reg;','&trade;','&laquo;','&raquo;','&bull;',
				'&middot;','&uml;','&hellip;','&iexcl;','&iquest;','&brvbar;','&sect;','&ordm;','&ordf;','&macr;',
				'&para;','&dagger;','&Dagger;','&deg;','&cent;','&pound;','&curren;','&yen;','&fnof;','&plusmn;',
				'&divide;','&times;','&radic;','&int;','&sup1;','&sup2;','&sup3;','&acute;','&cedil;','&permill;',
				'&micro;','&not;','&frac12;','&frac14;','&frac34;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Aring;',
				'&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Igrave;','&Iacute;','&Icirc;','&ETH;','&Ntilde;',
				'&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Oslash;','&OElig;','&Ugrave;','&Uacute;','&Ucirc;','&Yacute;',
				'&THORN;','&agrave;','&aacute;','&acirc;','&atilde;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;',
				'&ecirc;','&igrave;','&iacute;','&icirc;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;',
				'&oslash;','&oelig;','&ugrave;','&uacute;','&ucirc;','&yacute;','&thorn;','&Scaron;','&scaron;','&Alpha;',
				'&Beta;','&Gamma;','&Delta;','&Epsilon;','&Zeta;','&Eta;','&Theta;','&Iota;','&Kappa;','&Lambda;',
				'&Mu;','&Nu;','&Xi;','&Omicron;','&Pi;','&Rho;','&Sigma;','&Tau;','&Upsilon;','&Phi;',
				'&Chi;','&Psi;','&Omega;','&alpha;','&beta;','&gamma;','&delta;','&epsilon;','&zeta;','&eta;',
				'&theta;','&iota;','&kappa;','&lambda;','&mu;','&nu;','&xi;','&omicron;','&pi;','&rho;',
				'&sigmaf;','&sigma;','&tau;','&upsilon;','&phi;','&chi;','&psi;','&omega;',
				'?','?','?','?','?','?','?');
				$v = str_replace($search, $replace, $v);

				$v = mysql_real_escape_string($v);
 
Ja klar weil das Forum noch ISO-8859-1 nutzt. Was ist nun mit deinen Problem? Gibt es einen Link wo man sich das mal ansehen kann?
 
Ich habe mein Problem doch nun gelöst, die Lösung habe ich hier ins Forum gepostet, nur leider nimmt er es nicht so an wie das Forum es sollte.
 

Neue Beiträge

Zurück