CodeIgniter配置charset和UTF-8支持

Dan*_*itt 5 php mysql codeigniter character-encoding

我正在一个网站上使用/存储数据库中的重音字符.我有页面模板设置,以便config.php charset变量匹配设置,例如:

<meta charset="<?php echo $this->config->item('charset');?>">
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当$config['charset']设置为UTF-8时,表单验证失败,如果包含重音字符,就好像没有提交任何字符.因此,例如,如果á包含在字符串中的任何位置,则必填字段将反弹.减去á的字符串工作正常.

我已经设法通过更改$config['charset']ISO-8859-1并将文本转换为UTF-8,然后在插入/使用php utf8_encode()和数据库检索数据之后将其设置为utf8_decode().这是最好的方法还是我错过了为了获得带有重音字符的UTF-8所需要的东西,在CodeIgniter中工作?

任何建议表示赞赏

Kuf*_*Kuf 12

您必须确保在任何地方都使用UTF-8,并且PHP和MySQL都配置为处理UTF-8.

在html中,添加元标记:

<meta charset="utf-8" />
Run Code Online (Sandbox Code Playgroud)

并以UTF-8格式保存.这是如何在记事本++中做到这一点.

定义MySQL表以支持UTF-8,使用以下命令创建表:

DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

并将连接设置为:

mysql_set_charset('utf8', $con);
Run Code Online (Sandbox Code Playgroud)

启用UTF-8php.ini:

default_charset = "utf-8"
Run Code Online (Sandbox Code Playgroud)

对于完整的手动检查在Web应用程序中处理Unicode前后