You are hereSoftwareentwicklung

Softwareentwicklung


Artikel zum Theme Programmieren und Softwareentwicklung

PHP und UTF-8 - eine Anleitung, Exkurs: Wenn die DB durcheinander gerät

Manchmal kommt es vor, dass der Import von Daten in die DB fehlschlägt, und man trotz korrektem UTF-8 wieder mit verhunzten Umlauten zu tun hat. In diesem Fall kann die CONVERT-Funktion von MySQL in Verbindung mit BLOB-Spalten hilfreich sein.

PHP und UTF-8 - eine Anleitung, Teil 3: PHP String-Funktionen

Es ist nun schon eine Weile her seit der letzten Folge, Zeit die unter anderem in den Gyro-PHP Application Framework geflossen ist. Dafür soll es in der Serie über PHP und UTF-8 nun endlich um PHP selber gehen. Dabei wird in einem ersten Schritt über die String-Funktionen von PHP zu reden sein, während die Frage der Regular Expressions auf eine weitere Folge vertagt ist.

PHP und UTF-8 - eine Anleitung, Teil 2: Webseiten als UTF-8 ausliefern

Nachdem nun die MySQL-Datenbankverbindung reibungslos mit UTF-8 funktioniert und bevor wir uns im weiteren Verlauf der Serie über PHP und UTF-8 wirklich PHP selber zuwenden, sollen noch ein paar Worte über das korrekte ausliefern einer UTF-8 kodieren Webseite verloren werden. Das Problem, das hier angegangen werden soll ist: Wie erkennt der Browser eigentlich, dass eine Webseite in UTF-8 ist?

PHP und UTF-8 – eine Anleitung, Teil 1: MySQL

Am Anfang der Serie über PHP und UTF-8 soll zunächst ein Abstecher zu MySQL stehen, schließlich ziehen die meisten PHP-Anwendungen ihre Daten aus einer MySQL-Datenbank. Und anders als man vielleicht annehmen würde, ist die Verwendung von UTF-8 mit MySQL alles andere als problemfrei - insbesondere reicht es nicht aus, Tabellen einfach als UTF-8 zu deklarieren!

PHP und UTF-8 – eine Anleitung, Einleitung

Es ist kein Geheimnis, dass PHP und Multibyte-Zeichensätze wie etwa UTF-8 nicht gut zusammen gehen. Dies hat drei Gründer:

  • Die meisten PHP-Funktionen setzen wie selbstverständlich ANSI-Strings voraus, etwa die meisten String-Funktionen
  • Bei PHP-Funktionen, die Multibyte-Zeichensätze verarbeiten können, wie etwa htmlentities(), werden diese nicht benutzt.
  • Und last not least ist der korrekte Einsatz von MySQL und UTF-8 auch nicht einfach.

Ich werden diesen drei Problemfeldern in den nächsten Wochen nachspüren.

Teil 1: UTF-8 und MySQL
Teil 2: Webseiten als UTF-8 ausliefern
Teil 3: PHP String Funktionen
Exkurs: Exkurs: Falsche Daten in der DB fixen

Die immer gleiche Frage: Ist C++ wirklich schnell

Ich hatte es ja schon einige Mal mit der Frage lohnt sich C++ Low-Level-Optimierung und ist C++ wirklich schnell. Dieses Thema stirbt wohl nie aus, wie man an dieser Debatte sehen kann: C++ als angeblich beste Sprache für mathematische Anwendungen, weil das ja so toll schnell ist. In den Kommentaren steht es bereits, aber die ausführlichste Antwort, warum High-Level-Sprachen schneller komplex rechnen als hardwarenahe Sprachen wie C oder C++ findet sich bei Good Math, Bad Math: Compiler optimieren besser als der Mensch, vorausgesetzt sie haben genug Informationen. Genau diese Informationen fehlen aber dem C++-Compiler gerade wegen der pointer-basierterten Natur von C++.

Tweets

Internetwoche Köln vom 13.-19. September. http://iwcgn.koeln.de/ #IWCGN vor 16 hours 24 min
WTF? #Swoodoo flight search does not allow 2 adults and 3 children? #fail vor 1 Tag 8 hours
#Spam is a more or less solved problem for email-clients. When will #Facebook et al implement similar techniques? vor 2 days 8 hours
Creating a standalone executable jar with #Scala and #SBT http://bit.ly/9gf7V6 #Proguard vor 2 days 20 hours
@bassistance Congrats! vor 5 days 19 hours
#Webmontag #Köln am 13. September http://www.webmontag.de/location/koeln/2010-09-13 vor 1 Woche 2 days
#blu twitter client #fails since August 15th due to #Twitter protocol changes known months in advance. Epic #fail. vor 2 weeks 1 Tag
"Stay logged in" on #Xing does nothing, it seems. At least I have to provide my credentials every day, whether I check it or not. #fail vor 2 weeks 2 days