2016-11-06 97 views
0

我有一个mysql数据库,我有一个名为“user_job”的表。在行“类别”中,我存储了一个短语“Alpha-Aλφα”。 我的代码是:无法从MySQL数据库中获取英语和希腊语的短语

<?php 
$e = mysql_query("select `category` from `user_job` where `category`='$category' "); 

$a = mysql_num_rows($e); 

?> 

当我运行它时,它返回我0行。如果我删除希腊字中的“Αλφα”这个希腊字,它会起作用,并返回给我1行。这里有什么问题以及如何解决这个问题。我的表设置为“utf8_general_ci”

+0

'utf8_general_ci'包含Αλφα[见这里]中的所有字符(http://collat​​ion-charts.org/mysql60/mysql604.utf8_general_ci.european.html),所以它不是你的编码。 –

回答

0

这看起来像一个编码不匹配,你应该做的是确保你转换到适当的编码与你的数据库。

希腊字母通常编码为ISO-8859-7。如果这真的是你输入的话,那么你可以将其转换像这样:

<?php 
$category = iconv('ISO-8859-7', 'UTF-8', $category); 
?> 

PHP提供了许多有用的功能,以编码之间转换:

这两个都带有默认的PHP发行版。

+0

仍然无法正常工作 – 33528

+0

尝试检测输入的编码,以确保它是您正在转换的正确编码。在一个理想的世界中,所有的东西都应该是UTF-8,但是可悲的是我们并不生活在这样的环境中:( 带PHP的mbstring扩展提供了一种尝试检测输入编码的功能:http://php.net/mb_detect_encoding – Kalle