2015-05-25 84 views
0

我的數據庫有整理utf8-general-ci [我也試過greek-general-ci與更壞的結果]。希臘字符不能正確顯示/從數據庫 - html,php,mysqli

當我直接通過phpMyAdmin插入希臘值的行時,它會出現在我的html頁面上,如下所示:'??????'。

當我通過我的html表單插入一行時,它在html結果頁面上正確顯示,但是在phpMyAdmin上它看起來像這樣:'ÎαÏία'。

我可以處理這個問題,因爲我只爲大學項目做這件事,所以我可以通過我的html表格插入所有行,但我很好奇爲什麼會發生這種情況。

在我的HTML文件,我有 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> ,當我有它與我的網頁認真搞砸我的PHP文件header('Content-Type: text/html; charset=utf-8');所以我一定不包括它。還嘗試了包括$mysqli->set_charset("utf8");但只出現錯誤。

我也檢查了Greek characters encoding works in HTML but not in PHP但我們沒有同樣的問題。我應該改變httpd.conf文件嗎?

回答

0

首先檢查您的表格的排序規則。它沒有鏈接到數據庫整理。 您的表格整理也應該是utf8-general-ci。

<? header('Content-Type: text/html; charset=utf-8'); 
$mysqli->set_charset("utf8"); ?> 
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 

當所有這四個設置都處於活動狀態時; 你應該能夠插入,更新或閱讀UTF-8 INSERTED數據成功

我的猜測是發生的問題,因爲你的舊數據不是UTF-8編碼。 您應該創建一個批處理腳本;

  1. 從表
  2. 選擇所有的數據轉換爲UTF-8使用mb_convert_encoding
  3. 和更新舊的數據

解決您的數據。

+0

謝謝你的回答。你的第一個建議沒有奏效,我會很快嘗試批處理腳本。 – gkri