[英]PHP htmlentities not working? output is?
我正在嘗試在MySQL數據庫中存儲一些數據。 當我嘗試輸入特殊字符甚至是ø或звяф等外來字符時,我希望將它們存儲為html實體(例如ő)
我以為它很簡單,只使用htmlentities(),但是當我存儲數據時,我什么也沒得到? 在數據庫中。
有任何想法嗎?
這是我現在使用的代碼:
$sqlOrder="INSERT INTO data (
bad, cname, lor
)
VALUES (
'".htmlentities($b->getBad(), ENT_COMPAT, 'UTF-8')."', '".htmlentities($b->getCName(), ENT_COMPAT, 'UTF-8')."', '".htmlentities($b->getLor(), ENT_COMPAT, 'UTF-8')."'
)";
如前所述,數據庫中的結果為????????? 用於任何特殊字符,例如кршуцкыя或æåø。
數據庫的數據整理是什么? 默認情況下,大多數MySQL為新創建的數據庫安裝set latin1_swedish_ci
而不是utf8_general_ci
。
更改數據庫的排序規則,然后重試。
ALTER DATABASE [name of your database] CHARACTER SET utf8;
如果這是一個特定的表,則排序規則可以更改為:
ALTER TABLE [name of your table] CONVERT TO CHARACTER SET utf8;
如果它是表中的特定列:
ALTER TABLE [name of your table] MODIFY [name of your column] [other settings] CHARACTER SET utf8 COLLATE utf8_general_ci;
或者,您可以導出當前數據庫,使用此命令創建新數據庫並重新導入數據:
CREATE DATABASE [name of your database] CHARACTER SET utf8 COLLATE utf8_general_ci;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.