[英]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.