从我的服务器,我创建并执行查询到我的数据库。查询如下所示:
INSERT INTO `table`(`attr`)
VALUES (
'myText',
...
);
插入工作正常,但当myText是(例如)€
字符时,它会插入€
(ISO表示)。当我在phpMyAdmin中使用此字符执行查询时,可以使用。有人能告诉我问题在哪里吗?
注意:在PHP
中,插入查询的myText
为€
- 因此在查询之前不会转换为ISO表示。
更新:我使用MySQL 5.5
更新2:我的桌子上有CHARSET=utf8 COLLATE=utf8_bin
。
答案 0 :(得分:1)
在mysql连接之后,在任何查询之前,立即使用:
mysql_connect(...);
mysql_select_db(...);
mysql_query("SET NAMES 'utf8'");
从那时起,您可以使用查询,并且utf8字符将正确显示。
更新:
不要忘记在文档中添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
。
答案 1 :(得分:0)
也许你需要对字符串进行编码..
$myText = utf8_encode('MyText');
INSERT INTO `table`(`attr`)
VALUES (
'$myText',
...
);
答案 2 :(得分:0)
答案 3 :(得分:0)
默认情况下,您的MySql服务器不期望UTF8,首先运行以下查询
SET NAMES 'utf8';
答案 4 :(得分:0)
PhpMyAdmin可能已正确配置charset进行连接,但您的脚本没有。
请确保您有configured charset correctly例如语句:
SET CHARACTER SET 'UTF-8';
SET NAMES 'UTF-8';
在将任何内容推送到数据库之前(如果您使用latin1
而不是UTF-8
作为表格字符集,则应使用latin1
)。