5

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

<meta charset="<?php echo $this->config->item('charset');?>">

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

我已经设法通过在$config['charset']使用phputf8_encode()utf8_decode(). 这是最好的方法,还是我错过了在 CodeIgniter 中工作以获取带有重音字符的 UTF-8 所需的东西?

任何建议表示赞赏。

4

1 回答 1

12

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

在 html 中,添加元标记:

<meta charset="utf-8" />

并将其保存为 UTF-8 格式。这里是如何在记事本++ 中做到这一点

定义 MySQL 表以支持 UTF-8,创建表:

DEFAULT CHARSET=utf8;

并将连接设置为:

mysql_set_charset('utf8', $con);

php.ini:中启用 UTF-8

default_charset = "utf-8"

有关在 Web 应用程序中从前到后处理 Unicode的完整手动检查

于 2012-08-28T11:22:46.187 回答