我正在菲律宾开展一个项目,许多人的名字中都有特殊的拉丁文字符.
我有一个数据库设置与latin1中的所有表与latin1_swedish_ci排序规则.
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
Run Code Online (Sandbox Code Playgroud)
我的网页标题声明iso-8859-1作为字符集.
例如,当我通过我的网络表单提交包含波形符号的员工姓名时,它在我的表格中显示为"MarieCañon",当我查看员工的记录时,我的网页上显示的内容相同.
如果我将网页编码更改为utf-8,它会正确显示为"MarieCañon".所以,我假设我在我的latin1表格中编码UTF-8.但我很困惑可能发生的地方.
据我所知,PDO不涉及编码.我的网页被声明为iso-8859-1,所以我认为PHP不会导致问题.我的character_set_connection是MySQL中的latin1.
这可能发生在哪里?
附加信息:Ubuntu 10.04.2 LTS MySQL 5.1.41-3ubuntu12.9-log PHP5:5.3.2 Apache2:2.2.14