【发布时间】:2015-02-27 11:11:15
【问题描述】:
我无法插入包含土耳其语字符的字符串。我正在尝试将“öçşığüÖÇŞİĞÜ”作为字符串插入。
我把下面的行放到了php文件的头部:
header("Content-Type: text/html; charset=windows-1254");
我用 ajax 获取数据(虽然不重要,我自己写)
$json = filter_input_array(INPUT_POST);
这里是插入命令:
$query = "INSERT INTO users (name) VALUES ('" . $user->get_name() . "')";
现在,我尝试了两种为变量赋值的情况:
案例一
- php: $name = $json['name'];
- 浏览器: öçşığüÖÇÅİÄÜ
- 数据库: çşığüÖÇŞİĞÜ
案例 2
- php: $name = iconv("UTF-8", "ISO-8859-9", $json['name']);
- 浏览器: öçşığüÖÇŞİĞÜ
- 数据库: çþýðüÖÇÞÝÐÜ
“1”是我分配的字符串类型,“2”是“echo $user->get_name();”的结果取决于“1”处的分配,“3”是数据库单元格中的值。我可以在 CASE 2 中的“echo”中得到真实的结果,但损坏的结果被插入到数据库中。我的数据库排序规则是:“utf8_turkish_ci”。
(PHP 5.4.17,MySQL 5.6.13)
【问题讨论】:
标签: php mysql character-encoding collation