{"id":1111,"date":"2015-12-03T16:55:34","date_gmt":"2015-12-03T14:55:34","guid":{"rendered":"http:\/\/blog.speedyj.de\/?p=1111"},"modified":"2015-12-03T16:55:34","modified_gmt":"2015-12-03T14:55:34","slug":"php-mysql-und-utf-8","status":"publish","type":"post","link":"https:\/\/blog.speedyj.de\/?p=1111","title":{"rendered":"PHP, MySQL und UTF-8"},"content":{"rendered":"<p>Auch wenn heutzutage das Unterst\u00fctzen von UTF-8 auf Webseiten eigentlich zur Selbstverst\u00e4ndlichkeit geh\u00f6rt, so findet man immer wieder PHP-Projekte, in denen die Verbindung zur mySQL-Datenbank einfach hergestellt wird, ohne dabei die Verbindung auf UTF-8 einzustellen. In vielen F\u00e4llen merkt man diesen Fehler nicht sofort, sondern erst dann, wenn man Umlaute oder andere Unicode-Zeichen verwendet.<\/p>\n<p>Man sollte daher darauf achten, dass man nach dem Verbindungsaufbau den CharaterSet entsprechend einstellt. Hier ein Beispiel; die letzte Zeile stellt die Daten\u00fcbertragung auf utf-8 ein.<\/p>\n<p><code><br \/>\n$connection = mysql_connect($server, $user, $password);<br \/>\nmysql_select_db($databaseName ,$connection);<br \/>\nmysql_query(\"set names 'utf8';\", $connection);<br \/>\n<\/code><\/p>\n<p>Aufgrund der \u00dcbersichtlichkeit wurde auf Fehlerbehandlung verzichtet (d.h. wer es einfach kopiert, sollte sich zumindest dar\u00fcber noch Gedanken machen). Dar\u00fcber hinaus sollte man nat\u00fcrlich sicherstellen, dass auch das Character-Encoding in der Webpage auf UTF-8 eingestellt ist (das ist der Default bei der HTML5 <code>&lt;!DOCTYPE html&gt;<\/code> Einleitung).<\/p>\n<p>Wer mysqli verwendet, der nutzt statt dem oben gelisteten Code die <code>set_charset<\/code> Methode.<br \/>\n<code><br \/>\n$connection->set_charset(\"utf8\");<br \/>\n<\/code><\/p>\n<p>Gerd Riesselmann hat bereits vor Jahren einen guten Blog-Eintrag verfasst, wie man die <a href=\"http:\/\/www.gerd-riesselmann.net\/softwareentwicklung\/php-und-utf-8-eine-anleitung-teil-1-mysql\/\" target=\"_blank\">Datenbank-Verbindung bzgl. UTF-8 \u00fcberpr\u00fcfen kann.<\/a><\/p>\n<p><strong>MySQL Docs:<\/strong><br \/>\n<a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/charset-connection.html\" target=\"_blank\">http:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/charset-connection.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auch wenn heutzutage das Unterst\u00fctzen von UTF-8 auf Webseiten eigentlich zur Selbstverst\u00e4ndlichkeit geh\u00f6rt, so findet man immer wieder PHP-Projekte, in denen die Verbindung zur mySQL-Datenbank einfach hergestellt wird, ohne dabei die Verbindung auf UTF-8 einzustellen. In vielen F\u00e4llen merkt man diesen Fehler nicht sofort, sondern erst dann, wenn man Umlaute oder andere Unicode-Zeichen verwendet. Man [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-1111","post","type-post","status-publish","format-standard","hentry","category-entwicklung"],"_links":{"self":[{"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=\/wp\/v2\/posts\/1111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1111"}],"version-history":[{"count":14,"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=\/wp\/v2\/posts\/1111\/revisions"}],"predecessor-version":[{"id":1143,"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=\/wp\/v2\/posts\/1111\/revisions\/1143"}],"wp:attachment":[{"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.speedyj.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}