HTML::FormFu::Manual::Unicode man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

HTML::FormFu::Manual::UseroContributed Perl DoHTML::FormFu::Manual::Unicode(3)

NAME
       HTML::FormFu::Manual::Unicode - Working with unicode

DESCRIPTION
       Working with unicode.

       For a practical example, see the Catalyst application in the
       "examples/unicode" directory in this distribution.

ASSUMPTIONS
       In this tutorial, we're assuming that all encodings are UTF-8. It's
       relatively simple to combine different encodings from different
       sources, but that's beyond the scope of this tutorial.

       For simplicity, we're also going to assume that you're using Catalyst
       for your web-framework, DBIx::Class for your database ORM, TT for your
       templating system, and YAML format "HTML::FormFu" configuration files,
       with YAML::XS installed. However, the principles we'll cover should
       translate to whatever technologies you chose to work with.

BASICS
       To make it short and sweet: you must decode all data going into your
       program, and encode all data coming from your program.

       Skip to "CHANGES REQUIRED" if you want to see what you need to do
       without any other explanation.

INPUT
   Input parameters from the browser
       If you're using "Catalyst", Catalyst::Plugin::Unicode will decode all
       input parameters sent from the browser to your application - see
       "Catalyst Configuration".

       If you're using some other framework or, in any case, you need to
       decode the input parameters yourself, please take a look at
       HTML::FormFu::Filter::Encode.

   Data from the database
       If you're using DBIx::Class, DBIx::Class::UTF8Columns is likely the
       best options, as it will decode all input retrieved from the database -
       see "DBIx::Class Configuration".

       In other cases (i.e. plain DBI), you still need to decode the string
       data coming from the database. This varies depending on the database
       server.	For MySQL, for instance, you can use the "mysql_enable_utf8"
       attribute: see DBD::mysql documentation for details.

   Your template files
       Set TT to decode all template files - see "TT Configuration".

   HTML::FormFu's own template files
       Set "HTML::FormFu" to decode all template files - see "HTML::FormFu
       Template Configuration".

   HTML::FormFu form configuration files
       If you're using "YAML" config files, your files will automatically be
       decoded by "load_config_file|HTML::FormFu/load_config_file" and
       "load_config_filestem|HTML::FormFu/load_config_filestem".

       If you have Config::General config files, your files will automatically
       be decoded by "load_config_file|HTML::FormFu/load_config_file" and
       "load_config_filestem|HTML::FormFu/load_config_filestem", which
       automatically sets Config::General's "-UTF8" setting.

   Your perl source code
       Any perl source files which contain Unicode characters must use the
       utf8 module.

OUTPUT
   Data saved to the database
       With "DBIx::Class", DBIx::Class::UTF8Columns will encode all data sent
       to the database - see "DBIx::Class Configuration".

   HTML sent to the browser
       With "Catalyst", Catalyst::Plugin::Unicode will encode all output sent
       from your application to the browser - see "Catalyst Configuration".

       In other circumstances you need to be sure to output your Unicode
       (decoded) strings in UTF-8. To do this you can encode your output
       before it's sent to the browser with something like:

	   use utf8;
	   if ( $output && utf8::is_utf8($output) ){
	       utf8::encode( $output ); # Encodes in-place
	   }

       Another option is to set the "binmode" for "STDOUT":

	   bindmode STDOUT, ':utf8';

       However, be sure to do this only when sending UTF-8 data: if you're
       serving images, PFD files, etc, "binmode" should remain set to ":raw".

CHANGES REQUIRED
   Catalyst Configuration
       Add Catalyst::Plugin::Unicode to the list of Catalyst plugins:

	   use Catalyst qw( ConfigLoader Static::Simple Unicode );

   DBIx::Class Configuration
       Add DBIx::Class::UTF8Columns to the list of components loaded, for each
       table that has columns storing unicode:

	   __PACKAGE__->load_components( qw( UTF8Columns HTML::FormFu PK::Auto Core ) );

       Pass each column name that will store unicode to "utf8_columns()":

	   __PACKAGE__->utf8_columns( qw( lastname firstname ) );

   TT Configuration
       Tell TT to decode all template files, by adding the following to your
       application config in MyApp.pm

	   package MyApp;
	   use strict;
	   use parent 'Catalyst';
	   use Catalyst qw( ConfigLoader );

	   MyApp->config({
	       'View::TT' => {
		   ENCODING => 'UTF-8',
	       },
	   });

	   1;

   HTML::FormFu Template Configuration
       Make "HTML::FormFu" tell TT to decode all template files, by adding the
       following to your "myapp.yml" Catalyst configuration file:

	   package MyApp;
	   use strict;
	   use parent 'Catalyst';
	   use Catalyst qw( ConfigLoader );

	   MyApp->config({
	       'Controller::HTML::FormFu' => {
		   constructor => {
		       tt_args => {
			   ENCODING => 'UTF-8',
		       },
		   },
	       },
	   });

	   1;

       These above 2 examples should be combined, like so:

	   package MyApp;
	   use strict;
	   use parent 'Catalyst';
	   use Catalyst qw( ConfigLoader );

	   MyApp->config({
	       'Controller::HTML::FormFu' => {
		   constructor => {
		       tt_args => {
			   ENCODING => 'UTF-8',
		       },
		   },
	       },
	       'View::TT' => {
		   ENCODING => 'UTF-8',
	       },
	   });

	   1;

AUTHORS
       Carl Franks "cfranks@cpan.org" Michele Beltrame "arthas@cpan.org"
       (contributions)

COPYRIGHT
       This document is free, you can redistribute it and/or modify it under
       the same terms as Perl itself.

perl v5.14.2			  2011-05-10  HTML::FormFu::Manual::Unicode(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net