2011-01-19 70 views
0

我有一个utf-8编码的页面。 Mysql设置为utf8_general_ci。 下面是该查询:php mysql查询编码问题

mysql_query("SET CHARACTER SET utf8_general_ci"); 

       $query = "INSERT INTO newsbox VALUES ('null', '$zaglavie', '$nom_file_big', '$den', '$mesec', '$godina', '$zaglavie2', '$text', '$zaglavie3')"; 
       $result = mysql_query($query) or die(mysql_error()); 

和西里尔输入文本插入像?????。可能是什么问题呢。

回答

1

我不确定mysql_query(“SET ..”)是否按预期工作。尝试使用mysql_set_charset()设置字符集。 你确定文本是这样插入的吗?如果你使用的CLI客户端的错误字符集,显示输出也可能是错误的(也可能通过mysql_fetch _ *()进行检索)。

6

我倾向于发现解决事情很多;

mysql_query("SET NAMES 'utf8'"); 

在执行任何查询之前。

的文档建议您使用mysql_set_charset,但我经常看到的功能缺失。

if(function_exists('mysql_set_charset')){ 
    mysql_set_charset('utf8', $db_con); 
}else{ 
    mysql_query("SET NAMES 'utf8'", $db_con); 
} 
+1

哇这对我工作!任何想法为什么我不需要过去这样做? – Allen 2013-06-11 14:49:31

+0

我想这取决于你过去的环境设置 - 也许你很幸运。 – 2013-06-11 21:04:56