PHP htmlentities无法正常工作?输出是?

时间:2013-12-04 21:59:19

标签: php mysql

我正在尝试将一些数据存储在我的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')."'
    )";

如上所述,数据库中的结果是?????????对于任何特殊字符,例如кршуцкыя或æåø。

1 个答案:

答案 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;