2013-10-14 70 views
1

我有用utf8_general_ci編碼的所有表和數據庫,並且數據庫中的所有數據都正常。 當我選擇在CLI和PHP(PDO)數據和打印(當我將這些數據保存到數據庫)的文本包含問號:使用php編碼MySQL數據庫

Raw, zagra? te? rol? wiceprezydenta 

爲什麼?怎麼了 ? 我試過SET NAMES解決方案,但不工作。我的代碼 部分:

<?php 
setlocale(LC_ALL, 'pl_PL'); 
ini_set('default_charset','utf-8'); 
mb_internal_encoding("UTF-8"); 
putenv('LANG=pl_PL.UTF-8'); 
$db = new PDO('mysql:host=localhost;dbname=nameofdb;charset=utf-8','root','******', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
// body... 
+0

貴* CLI *解釋UTF-8正確...? – deceze

+0

是的。問題是,即使我從瀏覽器運行腳本(當然,將標題字符集設置爲utf8) – mitch

+0

您是否在[UTF-8中一直貫穿]考慮了* everything *(http://stackoverflow.com/questions/279170/) UTF-8,所有聯程通)? – deceze

回答

0

字符集$db連接字符串中應該是不utf8utf-8這樣的:

$db = new PDO('mysql:host=localhost;dbname=nameofdb;charset=utf8','root','****', 
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); 
+0

謝謝,但不起作用,沒有任何改變。 – mitch