mysql编码的奇怪bug


Strange bug with mysql encoding

我有一个osTube网站。所有文件以UTF-8格式保存。使用utf8 utf8_unicode_ci创建的所有表,所有字段都具有相同的字符集。

At connect DB功能添加:

mysql_set_charset('utf8',$this -> connection);

网站内容为俄语和乌克兰语。当我打开它时,我没有任何问题。问题开始时,我尝试使用无大小写正则表达式-它不工作。

我发现,Zend调试器显示变量内容不可读,但调试编码是UTF-8。如果我删除line:

mysql_set_charset('utf8',$this -> connection);

在站点上我看到不可读的文本,但是如果我在浏览器上设置Windows-1251编码-文本开始可读。Zend调试器显示正常文本,regexp开始工作。但是在浏览器中我只看到'?????'。

这是什么?

你不清楚你在哪里使用正则表达式?在PHP中,您可以使用u修饰符为preg扩展启用UTF-8支持。

见:http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php