CodeIgniter config charset and UTF-8 support
character-encoding, codeigniter, mysql, php
Solution
You have to make sure that you use UTF-8 everywhere, and that both PHP and MySQL are configure to handle UTF-8.
In the html, add the meta-tag:
<meta charset="utf-8" />
And save it in UTF-8 format. here is how to do that in notepad++.
Define the MySQL tables to support UTF-8, create table with:
DEFAULT CHARSET=utf8;
And set the connection to:
mysql_set_charset('utf8', $con);
Enable UTF-8 in the `php.ini`:
default_charset = "utf-8"
For a full manual check Handling Unicode Front To Back In A Web App
Problem
I'm working on a website which uses / stores accented characters in the database. I have the page template set so that the config.php charset variable matches the setting, e.g.: ``` <meta charset="<?php echo $this->config->item('charset');?>"> ``` The problem I'm having is, when `$config['charset']` is set to UTF-8, the form validation fails and it's as if no characters were submitted if an accented character was included. So, for example, a required field will bounce back if á is included anywhere in the string. The string minus the á works fine. I've managed to get this working by changing the `$config['charset']` to ISO-8859-1 and converting text to UTF-8 before inserting / after retrieving from the database with php's `utf8_encode()` and `utf8_decode()`. Is this the best way or am I missing something needed in order to get UTF-8, with accented characters, working in CodeIgniter? Any advice appreciated.