Benutzer-Werkzeuge

Webseiten-Werkzeuge

doku:catalyst_utf8

Catalyst und UTF-8

Ziel: alles in UTF-8, damit es keine Probleme mit Umlauten gibt.

alles zu Catalyst und Umlaute

Siehe auch:

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):
    use Catalyst qw/-Debug
                    ConfigLoader
                    Unicode
                    Static::Simple/;
    • 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

package MeinCatalystTeil::View::TT;
...
use base 'Catalyst::View::TT';

__PACKAGE__->config(
  ...
  ENCODING => 'utf-8',
);

1;

Datenbankzugriff

Model - also z.B. MeinCatalystTeil/Model/MeineMySQLDatenbank.pm

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;

Spalten müssen im Schema als UTF8 "markiert" werden

also z.B. MeinCatalystTeil/Schema/MeineMySQLDatenbank/TabelleA.pm

package MeinCatalystTeil::Schema::MeineMySQLDatenbank;

use strict;
use warnings;

use base 'DBIx::Class';

...

__PACKAGE__->utf8_columns(qw(spalte_mit_utf8_content));

1;

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.

Permalink doku/catalyst_utf8.txt · Zuletzt geändert: 17.06.2009 12:01 von kfr

oeffentlich