我正在建立一个使用“geoanems”数据库的快速网站,用于世界各地。我正在使用 Mysql、PHP 和 CodeIgniter,但我遇到了 UTF8 地名的问题。我已经导入了数据库,一切都是用 UTF-8 设置的。
但是,我正在运行一个简单的测试,看看我是否可以正确地在浏览器中获取名称,并且我被问号所困扰。MySQL 显示 1123230 的名称和 sname 的正确十六进制,但相同的字符“C481”在 1127766 的 sname 中被剥离并被“3F”替换。
这是怎么回事?看到这是运行十六进制的 MySQL 为什么它改变了值?另外,如果我可以看到一排很好,为什么不能看到另一排?
我已经为 UTF8 设置了服务器,并在 MySQL 上运行检查以查看是否设置正确。这在 CodeIgniter 中也不起作用:(
。我也发送了“SET NAMES 'UTF8'”,但仍然没有喜悦。
这是 SQL:
$sql = 'select geonameid,name,sname, hex( name ) ,hex( sname ) from pp_adm1 where country = "af" COLLATE utf8_general_ci';
Sequel Pro - 在 DB 中显示正确的编码