2011-04-13 125 views
1

當我通過特殊字符我的看法字符串,特殊字符顯示爲問號,例如:使用codeigniter - 爲什麼歐洲字符不能正確顯示?

$data['make'] = 'Quels pneus Dunlop avez-vous acheté ?'; 

$this->load->view("form", $data); 

這看起來在我看來如下:

enter image description here

當我直接在HTML頁面輸入字符時,它們顯示正常。我該如何解決這個問題?

編輯:字符集已設置爲:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

回答

1

使用codeigniters ascii_to_entities函數做了訣竅。

$this->load->helper('text'); 
ascii_to_entities($string); 
+0

nops不幫我,在我的csv有一個歐元符號,東西在localhost上工作,但不在服務器上 – 2012-06-08 18:40:31

0

看起來它可能是一個字符集衝突。製作HTML charset聲明UTF8並將數據保存爲UTF8數據庫或文本文件。

在你<head>標籤:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

如果使用htmlentities()輸出數據變量,然後考慮指定字符集有作爲。

echo htmlentities($str, ENT_COMPAT, 'UTF-8'); 
+0

我有這樣的字符集已設置。如果我將'acheté'直接粘貼到視圖中,它看起來是正確的。好像codeigniter在數據發送到視圖之前操縱數據 – Ash 2011-04-13 10:58:28

+0

那麼它是來自數據庫嗎?如果是這樣的話?模板代碼在哪裏? – Treffynnon 2011-04-13 11:07:46

+0

不,它不是來自數據庫 - 它是純文本直接輸入到控制器 – Ash 2011-04-13 11:19:45

0

保存視圖頁面UTF8,並且將做的工作

+0

這似乎是Treffynnon提供的答案的簡要版本 - 這個答案補充說他們的不是? – beresfordt 2015-02-22 20:24:09

相關問題