2014-02-28 49 views
0

我使用WAMP在本地主机上运行PHP代码。问题是,在我的本地主机上,我得到像“l?n”这样的utf8错误。在现场服务器上,我得到了像怀疑的“蓝色”。使用idiorm和mysql的utf8

什么我试过到目前为止

  • 组数据库表格服务器和本地主机utf8_general_ci
  • 服务器和本地主机组数据库表结构行utf8_general_ci
  • 经过文件编码与utf cast ,它们在服务器和本地主机上均被设置为ASCII/UTF-8, NO BOM
  • 强制PHP头部与header('Content-Type: text/html; charset=utf-8');
  • 强制UTF8数据库与ORM::configure('mysql:host=SECRET;dbname=SECRET;charset=utf8');
  • 新增ORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));没有运气

更多信息

  • 当我用phpmyadmin的数据是在数据库中是相同的。我甚至使用了一个diff工具。
  • 输出的数据不相同。 为什么不呢?该怎么办?
  • 我使用idiorm来获得很好的SQL。
  • 数据库设置相同。
  • 这些文件是相同的。我将它们上传到服务器。
  • 我有filezilla以二进制形式发送它们。

我只是想本地主机和服务器显示相同,没有如果语句解决方法。我不希望utf8_decode在一个地方,而不是在另一个地方。

任何想法我可以尝试吗?

+0

怎么样的ini_set( 'DEFAULT_CHARSET', 'utf-8'); – redaxmedia

回答

0

我不知道为什么,但我必须在@$dom->loadHTML($html);之前放置$html = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");,这是我的代码。

我仍然不知道为什么在没有它的情况下它无法正常工作,当本地主机和服务器设置在各个方面都相同时。

1

关于你必须做这种配置下documentation

<?php 
ORM::configure('driver_options', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));