2010-08-13 71 views
0

當用戶提交一個特殊字符♠它存儲在MySQL數據庫作爲â�,如果用戶想改變它,而不是將其重新顯示爲♠其顯示爲â�我怎麼能解決這個問題以便將其複製回♠並保存爲♠PHP和MySQL的特殊字符編碼的問題

在旁註中我應該如何使用PHP保存我的特殊字符?

我使用PHP MySQL的&數據

回答

3
  1. 用戶類型
  2. 你逃脫數據,以避免SQL注入(不轉換的特殊字符的HTML代碼等同尚)
  3. 數據獲取存儲在數據庫中的確切用戶如何輸入它
  4. 您將原始數據回退出
  5. 您通過character encoding function或其他等價物運行原始數據將特殊字符轉換爲其html代碼,從而避免跨站點腳本或html注入
-1

這可能是一個問題。
如果要將特殊字符轉換爲實體,則在輸出字段值/ textarea內容時,必須對它們進行編碼兩次。但它可能會混淆其他角色 - 全部成爲它們的實體表示 - 引號,括號等。如果這是你要求的 - 繼續。但是,在我看來,編輯這樣的文本可能是一個可怕的混亂。
這就是爲什麼最好不要讓用戶使用實體。爲什麼他們不能進入符號本身?

至於數據庫中的特殊字符 - 只需在數據庫和HTML中使用UTF-8編碼即可。

+0

您仍然需要編碼< and >對不對? – 2010-08-13 03:27:32

+0

編輯我的答案。 – 2010-08-13 04:08:09

+0

關於UTF-8,還要確保連接設置爲UTF-8。 mysql_set_charset('utf8'); – Thomas 2010-08-13 04:11:35