2011-08-12 58 views
0

我有一個UTF-8的問題。我使用框架Codeigniter。對於客戶端,我必須 將CSV文件轉換爲數據庫。但是,當我通過查詢將數據添加到數據庫 是一個問題。有些角色不工作。例如這個詞:Eén。當我在PhpMyadmin添加這個詞時,它是正確的。UTF-8問題

當我嘗試變成Codeigniter查詢時,它沒有。 我的數據庫站在Utf-8上。 Codeigniter配置是utf-8。數據庫配置位於utf-8上。

下面是該查詢:

$query = "INSERT INTO lds_leerdoel(id,leerdoel,kind_omschrijving,cito,groep_id,OCW,opbouw, 
kerngebied_id,jaar_maand,KVH,craats,refnivo,toelichting,auteur) 
VALUES 
(
'".$this->db->escape_str($id)."', 
'".$leerdoel."', 
'".$this->db->escape_str($kind_omschrijving)."', 
'".$this->db->escape_str($cito)."', 
'".$this->db->escape_str($groep_id)."', 
'".$this->db->escape_str($OCW)."', 
'".$this->db->escape_str($opbouw)."', 
'".$this->db->escape_str($kerngebied_id)."', 
'".$this->db->escape_str($jaar_maand)."', 
'".$this->db->escape_str($KVH)."', 
'".$this->db->escape_str($craats)."', 
'".$this->db->escape_str($refnivo)."', 
'".$this->db->escape_str($toelichting)."', 
'".$this->db->escape_str($auteur)."' 
)"; 

$this->db->query($query); 

的問題是場leerdoel。有人提供解決方案嗎?非常感謝!!

問候, 耶勒

+2

爲什麼我們在'leerdoel'上使用'utf8_decode',如果你想這是UTF-8? – Andris

+0

嗨,那就對了。對不起,我忘了刪除那個。但問題依然存在。謝謝你的評論! – JelleP

回答

0

不應該使用國家字符串文字嗎? http://dev.mysql.com/doc/refman/5.0/en/charset-national.html

這意味着你可以這樣寫:

$query = "INSERT INTO lds_leerdoel(id,leerdoel,kind_omschrijving,cito,groep_id,OCW,opbouw, 
kerngebied_id,jaar_maand,KVH,craats,refnivo,toelichting,auteur) 
VALUES 
(
'".$this->db->escape_str($id)."', 
N'".$leerdoel."', 
-- rest of query omitted 
1

你需要插入查詢之前運行此查詢

"SET NAMES utf8" 
+0

我已經試過了。它不工作。但感謝您的評論! – JelleP

0

嘗試將文本轉換與iconv()爲Unicode:

iconv("ISO-8859-1", "UTF-8", $leerdoel); 

你可能如果你不知道文件使用什麼編碼,就需要做一點實驗。 (我認爲ISO-8859-1或ISO-8859-15是最常見的。)

+0

是的,這個作品除了字符 - 。但我改變這個 - 。一個較小的。謝謝! – JelleP

0

嘗試添加以下內容到標題

header('Content-Type: text/html; Charset=UTF-8'); 

另外,請檢查您的編輯器的編碼設置。

0

我也有類似的問題,我解決我的PHP文件的開頭添加此:

ini_set('default_charset', 'UTF-8'); 
mb_internal_encoding('UTF-8'); 

另外,很重要的檢查,如果你保存在UTF-8格式的PHP文件沒有BOM ,我對此感到很頭疼。我推薦Notepad++,它顯示了當前的文件編碼,並允許您在沒有BOM的情況下轉換爲UTF-8(如有必要)。

如果您想要查看我的問題和解決方案,請撥打it is here

希望它能幫助你!