所以我有一个具有相同字段的“utf8_general_ci”表。
我无法输入任何 utf8 字符,它们都显示为 '????' ,然后我将表更改为“MyISAM”,现在我可以从 PhpMyAdmin 插入 utf8 数据(第一次发生这种情况)。
但它仍然无法从 PHP 端工作。当我插入'āāā'时它显示为'???',但奇怪的是如果我插入'žžžēēē'它显示为'žžž???' 所以一些 utf8 字符有效吗?PHP 文件是 UTF-8
CREATE TABLE IF NOT EXISTS `company` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=5 ;
$dbConnection = mysql_connect("localhost","*****","*****");
mysql_query("SET NAMES 'utf8'", $dbConnection);
mysql_query("SET CHARACTER SET 'utf8'", $dbConnection);
mysql_select_db('cherrysystem', $dbConnection);
mysql_query("INSERT INTO `company` (`title`) VALUES ('āāčč')",$dbConnection);
解决
好的,所以我的问题是我必须将 MySql ini 文件设置为使用 utf8。默认情况下,它是别的东西,我使用的是 Wamp 服务器,它总是在没有额外配置的情况下工作,但在这种情况下不是。
character-set-server=utf8
collation-server=utf8_general_ci