2014-10-10 143 views
0

當我從表單中將數據輸入到sql數據庫時,下面的代碼有時仍然沒有正確地包含特殊字符。PHP特殊字符

$titel = mysql_real_escape_string($_POST['titel']); 

我不知道什麼可以....

一個例子

Assassin’s Creed Unity â€「 

相同的字符有時做的工作......

Destiny's Raids 

一些更例子....

Hyrule Warriors ‘Cia’ gameplay<br> 
Dragon Age: Inquisition Gameplay Features â€「 Crafting &am<br> 
NBA 2K15 â€「 Welcome To MyPARK<br> 
Sid Meier’s Civilization: Beyond Earth â€&ldq 

任何提示?

+2

你嘗試集名稱爲UTF-8 – 2014-10-10 06:38:35

+2

一般來說,你應該想想動像庫MySQLi或PDO更現代的數據庫適配器,其在內部進行這種轉義,並且比基於這種手動轉義功能的舊式方法更可靠。開始閱讀關於「準備好的陳述」! – arkascha 2014-10-10 06:40:54

+1

您似乎在以UTF-8插入/獲取信息,但在ISO-8859-1中顯示。以及@arkascha所說的:使用預先準備的語句。確保你的系統的所有部分都使用UTF-8,你應該沒問題。 – 2014-10-10 06:42:47

回答

0

執行此操作的指導方針進行工作UTF8解決方案:

  1. 使用SET NAMES 'utf-8' 打開你的數據庫連接時,例如:

$bd = mysql_connect(BD_SERVER, BD_USER, BD_PASSWORD); 

mysql_select_db(BD_DATABASE, $bd); 

mysql_query("SET NAMES 'utf8'", $bd); 

  1. 使用utf8_general_ci作爲您的數據庫排序規則。

  2. 用UTF-8編碼保存你的PHP文件。

  3. 把你的網頁下一個元的標題:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />