2011-07-01 50 views
1

我的原始文本是1 1/2"w x 1/2"h,但在數據庫中它看起來很喜歡1 1/2â€w x 1/2â€h如何使用php函數編碼特殊字符

我正在使用stripslashes()。

但我仍然無法轉換加密的字符串。

謝謝大家

我剛剛添加到HTML。

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
+1

stripslashes()?做什麼的?你的數據庫和表格是什麼排序規則?這不是加密,btw –

+0

你的數據庫使用什麼編碼? – Kevin

+0

latin1_general_ci – user737767

回答

3

我不知道你在哪裏閱讀你不得不使用stripslashes()轉義數據庫輸入或輸出,但該信息是錯誤的。您始終必須使用數據庫庫提供的特定轉義機制。例如,如果您使用PDO,則可以使用bindValue()將值注入SQL代碼。

至於1 1/2â€w x 1/2â€h,看起來像一個多字節的UTF-8字符串被誤解爲一些單字節編碼(可能是ISO-8859-1)。看起來您要麼將UTF-8數據放入Latin1數據庫,要麼在連接到數據庫時提供錯誤的字符集。在第一種情況下,最好的解決方案是改變你的數據庫字符集以匹配你的應用程序的字符集(如果你的DBMS允許的話)。在第二種情況下,您可能會在PHP manual page for whatever your DB library is中找到解決方案:查找某種方法來指定連接的字符集或編碼。

0

在數據庫,表和列上嘗試使用UTF-8歸類(utf8_general_ci)。

+0

我試過了,但它不起作用 – user737767

+0

你在哪裏更改排序規則?在數據庫級別?表級別?列級別? – Kevin

+0

我只改變了專欄級別,但謝謝我在html中更改..... – user737767