【发布时间】:2012-08-22 21:20:27
【问题描述】:
我正在开发一个在数据库中使用/存储重音字符的网站。我设置了页面模板,以便 config.php 字符集变量与设置匹配,例如:
<meta charset="<?php echo $this->config->item('charset');?>">
我遇到的问题是,当 $config['charset'] 设置为 UTF-8 时,表单验证失败,如果包含重音字符,就好像没有提交任何字符。因此,例如,如果 á 包含在字符串中的任何位置,必填字段将反弹。减去 á 的字符串可以正常工作。
我已经设法通过将$config['charset'] 更改为 ISO-8859-1 并将文本转换为 UTF-8,然后再使用 php 的 utf8_encode() 从数据库中检索 / 来实现这一点和utf8_decode()。这是最好的方法还是我错过了在 CodeIgniter 中工作以获取带有重音字符的 UTF-8 所需的东西?
任何建议表示赞赏。
【问题讨论】:
-
确保在任何地方都设置了 UTF-8。很难说哪里出了问题,但可能在某些时候你有不同的字符集。必读:joelonsoftware.com/articles/Unicode.html。
标签: php mysql codeigniter character-encoding