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-8在php.ini:
default_charset = "utf-8"
Run Code Online (Sandbox Code Playgroud)
对于完整的手动检查在Web应用程序中处理Unicode前后