使用特殊字符调用时,mysql_query不返回任何内容(丹麦字符:æøå)

时间:2012-04-01 13:21:07

标签: php mysql special-characters

我从带有自由文本搜索字段的表单生成一个mysql查询 类似的东西:
SELECT ... FROM ... WHERE 'something' LIKE '%SEARCH%'

当搜索不包含任何特殊字符(如丹麦字符ÆØÅ)时,所有这一切都能正常工作并返回有效行。

当使用这些字母时,查询不会返回任何结果,但是当我获取生成的查询字符串并将其插入phpMyAdmin时,我得到了我想要的结果。

由于

4 个答案:

答案 0 :(得分:1)

在您的连接文件中添加以下代码...

mysql_set_charset("utf8", $db);

最好将数据编码为UTF-8,然后再将其传递给查询...

答案 1 :(得分:0)

我不是使用丹麦语而是捷克语,但我认为有相同的(至少通过UTF8实现) - 你必须记住使用的编码(原始服务器脚本,数据表自身以及数据库连接处理程序)。 / p>

答案 2 :(得分:0)

我认为您有编码问题,也许phpMyAdmin使用的是与您的其他客户端不同的客户端编码。我想,SET NAMES 'encoding'应该做你需要做的事。

答案 3 :(得分:0)

我们也可以使用PHP变量并在select操作之前转换它(假设数据库是ISOO-8859-2)。

示例:

// word with special characters 
$search='kötészeti'; 
// conversion to ISO
$search=iconv("UTF-8","ISO-8859-2", $search);   
// create search condition
$condition="SELECT ... FROM ... WHERE 'something' LIKE '%$search%'"; 
// apply query
mysql_query($condition);