2014-02-28 96 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'));