我正在尝试将一些数据存储在我的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')."'
)";
如上所述,数据库中的结果是?????????对于任何特殊字符,例如кршуцкыя或æåø。
答案 0 :(得分:1)
您的数据库的数据整理是什么?默认情况下,对于新创建的数据库,大多数MySQL安装设置为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;