phpMyAdmin坚持强迫我的utf-8字符进入latin1。
服务器信息:
Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.0.27 - Source distribution
Protocol version: 10
Server charset: UTF-8 Unicode (utf8)
phpMyAdmin版本信息:4.0.10 PHP版本5.2.11
服务器版本和PHP版本不在我的控制之下,phpMyAdmin是将在PHP 5.2下运行的最新版本
导入或直接SQL都不起作用。 我自己的内部PHP工具正好处理utf8,并正确更新数据库。
DROP TABLE IF EXISTS `tempchar`;
SET character_set_client = utf8;
CREATE TABLE `tempchar` (
`id` int(11) NOT NULL DEFAULT '0',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`active` int(1) NOT NULL DEFAULT '0',
`type` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `tempchar` VALUES (382,'Vicenté Marcos de Cervantés',2,0);
最终结果(视为utf8)是:
382 : Vicent� Marcos de Cervant�s
切换到' Western' (拉丁1等)
382 : Vicenté Marcos de Cervantés
产生上述输出的代码:
$result=mysql_query("select * from tempchar where active=2 order by name");
while($row=mysql_fetch_array($result)) {
echo "$row[id] : $row[name]<br>\n";
}
显然phpMyAdmin踩到并做了一些不必要的事情。有没有人知道如何让它表现出来?