
UTF-8 mit ColdFusion und MySQL
Eine Kombination aus einer unicode MySQL Datenbank, ColdFusion und Apache kann einen schon manchmal verzweifeln lassen.
Um alles letztendlich im Browser korrekt dargestellt zu bekommen, bedarf es folgender Anpassungen:
Apache:
In der httpd.conf / apache2.conf sollte AddDefaultCharset on stehen.
Das veranlasst Apache überhaupt erstmal, dem Browser das korrekte Charset mitzuteilen.
ColdFusion:
Ich habe diese Anpassung für CF7 gefunden. Ob sie bei CF8 überhaupt noch nötig ist, kann ich nicht sagen. Ich denke aber, dass es in jedem Fall nicht verkehrt sein kann.
Und zwar geht man in der DataSource unter "Advanced Settings" zum Feld für den connection string und trägt dort ein "useUnicode=true&characterEncoding=utf-8"
In den CFML Seiten selbst können dann noch folgende Einstellungen hinzugefügt werden:
2 <cfset setEncoding("url","utf-8")>
3 <cfcontent type="text/html; charset=utf-8">
4 <cfprocessingdirective pageEncoding="utf-8">
Die Processingdirective muss wirklich in jede Seite eingetragen werden. Der Rest kann auch in der Application.cfc / .cfm stehen
MySQL:
Zuerstmal sollte natürlich eine DB mit UTF-8 und utf8_general_ci collation angelegt werden. Dann Tabellen hinzufügen wie z.B.
2 `feld1` varchar(100) NOT NULL,
3 `feld2` varchar(100) NOT NULL,
4 PRIMARY KEY (`feld1`),
5 UNIQUE KEY `feld1` (`feld1`)
6 ) TYPE=InnoDB "CHARACTER SET utf8;
Ich persönlich benutze wegen Transaktionssicherheit InnoDB.
Nun müssen noch Daten hinein. Das sollte natürlich in UTF-8 erfolgen :)
Falls man einen UTF-8 sql-dump besitzt, kann man diesen natürlich auch direkt einlesen. Damit MySQL hier die Unicode-Zeichen korrekt importiert, kann man folgenden Befehl verwenden:
Zack - funzt



