Benutzer-Werkzeuge

Webseiten-Werkzeuge


doku:catalyst_utf8

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.


doku:catalyst_utf8 [2009-06-17 12:01] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== Catalyst und UTF-8 ======
  
 + Ziel: alles in UTF-8, damit es keine Probleme mit Umlauten gibt.
 +
 +//alles zu Catalyst und Umlaute//
 +
 +Siehe auch:
 +  * http://dev.catalystframework.org/wiki/tutorialsandhowtos/Using_Unicode
 +
 +====== Probleme ======
 +
 +===== Template-Toolkit (TT) =====
 +
 +Es sind zwar alle .tt Dateien in utf-8 gespeichert und im HTML-Header steht utf-8, aber die Umlaute aus den tt-Dateien werden in Latin-1 gewandelt bevor sie ausgegbene werden.
 +
 +=> Im Browser sind Umlaute falsch solange Encoding auf "Auto" steht - stellt mans auf Latin-1 ist es ok.
 +
 +Ursache: offenbar liest TT die Datei als iso8859-1 ein anstatt als utf-8.
 +==== Lösung ====
 +
 +  * yum install perl-Catalyst-Plugin-Unicode
 +  * lib/Juhei.pm (Haupt-Anwendung): <code>
 +use Catalyst qw/-Debug
 +                ConfigLoader
 +                Unicode
 +                Static::Simple/;
 +</code>
 +    * um ''Unicode'' erweitern...
 +  * Dank an: Andreas 'ac0v' Specht
 +
 +===== weitere Tipps (noch zu bearbeiten) von Andreas 'ac0v' Specht =====
 +
 +==== Template Toolkit Sachen sollen UTF-8 Konform rauskommen ====
 + z.B. in MeinCatalystTeil/View/TT.pm
 +<code>
 +package MeinCatalystTeil::View::TT;
 +...
 +use base 'Catalyst::View::TT';
 +
 +__PACKAGE__->config(
 +  ...
 +  ENCODING => 'utf-8',
 +);
 +
 +1;
 +</code>
 +
 +==== Datenbankzugriff ====
 +
 +=== Model - also z.B. MeinCatalystTeil/Model/MeineMySQLDatenbank.pm ===
 +
 +<code>
 +package MeinCatalystTeil::Model::MeineMySQLDatenbank;
 +...
 +use base 'Catalyst::Model::DBIC::Schema';
 +
 +__PACKAGE__->config(
 +  ...,
 +  connect_info => [
 +      'dbi:mysql:database=meinemysqldatenbank',
 +      'username',
 +      'passwort', {
 +          mysql_enable_utf8 => 1,
 +      },
 +  ],
 +);
 +
 +1;
 +</code>
 +=== Spalten müssen im Schema als UTF8 "markiert" werden ===
 +also z.B. MeinCatalystTeil/Schema/MeineMySQLDatenbank/TabelleA.pm
 +<code>
 +package MeinCatalystTeil::Schema::MeineMySQLDatenbank;
 +
 +use strict;
 +use warnings;
 +
 +use base 'DBIx::Class';
 +
 +...
 +
 +__PACKAGE__->utf8_columns(qw(spalte_mit_utf8_content));
 +
 +1;
 +
 +</code>
 +
 +==== UTF8 Zeichen im Quellcode oder Codepoints mit z.B. "use charnames;" ====
 +
 +Da wir nicht mehr in der Steinzeit leben (außer natürlich cmd unter windows) gehe ich davon aus,
 +dass all meine Shells und meine Editoren UTF-8 können.
 +Wenn ich schon umbedingt im Quellcode meines Programms (z.B. Controller) einen Umlaut oder ein komisches
 +Zeichen brauche kann es nicht leiden, wenn ich z.B. statt einem einfachen "ä" ein "LATIN SMALL LETTER A WITH DIAERESIS"
 +ding zusammenwurschtln muss.
 +
 +=> wer UTF-8 Zeichen im Quellcode bvraucht sollte selbst oder im Team entscheiden, was man machen will.

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki