amazon.de Geschenkgutscheine

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:

 <cfset setEncoding("form","utf-8")>
 <cfset setEncoding("url","utf-8")>
 <cfcontent type="text/html; charset=utf-8">
 <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.

 CREATE TABLE `test` (
  `feld1` varchar(100) NOT NULL,
  `feld2` varchar(100) NOT NULL,
  PRIMARY KEY (`feld1`),
  UNIQUE KEY `feld1` (`feld1`)
  ) 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:

 mysql -p --default-character-set=utf8 DBNAME < sqldumpfile.sql

Zack - funzt

Kommentare (Kommentar-Moderation ist aktiv. Ihr Kommentar erscheint erst nach Prüfung.)
Gessmann's Gravatar Bis 2006 habe ich meine Projekte alle mit Coldfusuion realisiert, dann kam mein Einstieg in die PHP Welt und seitdem habe ich kein Projekt mehr in Coldfusion gemacht. Warum? Hauptgrund für mich war die unendlich grosse Quelle an Code Ressourcen und die riesige Community. Für fast jedes Problem gibt es eine offenliche Lösung. Das war (ist?) bei CF nicht so. Deshalb sollte Adobe die Coop mit Sourceforge mal nutzen und auch Coldfusion als Open Source anbieten. Vielleicht wird es auch dann wieder was mit Coldfusion bei mir.
# Erfasst von Gessmann | 22.11.10 06:57
BlogCFC was created by Raymond Camden. This blog is running version 5.9.5. Contact Blog Owner
Stoppt die Vorratsdatenspeicherung! Jetzt klicken &handeln! Willst du auch an der Aktion teilnehmen? Hier findest du alle relevanten Infos
und Materialien: