2013-07-14 114 views
0

我一直在做的一切,無論如何涉及到數據庫扔我json_encode():無效的utf-8序列警告。Json編碼 - 無效的utf-8序列

此前,由於教義的使用,我無法處理它,所以我開始在我的項目中做其他事情......但現在我需要在一個地方使用PDO連接,並且問題已經返回。

即使使用一些隨機數據庫配置(但其中host ='localhost'),警告也會出現。


的代碼:

$dsn = 'mysql:dbname='.$form['dbname']->getData().';host='.$form['host']->getData(); 
$pdo = new \PDO($dsn, $form['username']->getData(), $form['password']->getData()); 

輸入例:

dbname = 'fdsfdsf' 
username = 'fdsfdsf' 
password = 'fsdfds' 
host = 'localhost' 

確切的錯誤:

ContextErrorException: Warning: json_encode(): Invalid UTF-8 sequence in argument in C:\xampp\htdocs\cc\app\cache\dev\classes.php line 4520 

我已經試過了什麼?

  1. mysql_set_charset()
  2. 逃逸輸入串
  3. @語法
  4. 設置UTF8編碼用於控制器文件
  5. 設置爲MySQL表UTF8-一般編碼/數據庫

    $dsn = 'mysql:dbname='.htmlentities($form['dbname']->getData(), ENT_QUOTES, 'utf-8', FALSE).';host='.htmlentities($form['host']->getData(), ENT_QUOTES, 'utf-8', FALSE); 
    $pdo = @new \PDO($dsn, htmlentities($form['username']->getData(), ENT_QUOTES, 'utf-8', FALSE), htmlentities($form['password']->getData(), ENT_QUOTES, 'utf-8', FALSE)); 
    mysql_set_charset('utf-8'); 
    

怎麼了?

回答

1

通常mysql_set_charset得到'utf8'而不是'utf-8'所以也許這是問題所在。

+0

哦,謝謝你指出 - 但它不能解決問題。 – user2252786

+0

你可以發佈你使用json_encode的確切代碼和你發送給它的值嗎? – Adidi

相關問題