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.

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.

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.