我使用XML文件通过php将数据加载到数据库中。因为xml文件有很多utf8字符,所以我使用以下SQl命令来改变我的表以接受UTF 8字符:
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
我成功输入数据,但数据库中的名称以奇怪的方式出现。例如:
Jääskeläinen shows up as Jääskeläinen
此外,对于Jones
这样的普通名称,如果我使用查询select 'name' from players where 'name' LIKE '%n%';
,则结果集为0
,这是不正确的。我只能通过pid
ex进行搜索:如果我使用查询Jones
pid select 'name' from 'players' where
= 453;
有人可以向我解释为什么我会收到此错误吗?
XML文件如下所示:
<?xml version="1.0" encoding ="utf8"?>
<pages>
<link>
<name> Cech </name>
<club> Chelsea </club>
<points> 49 </points>
</link>
用于加载XML文件并将数据输入数据库的php代码是here
答案 0 :(得分:2)
我通过php解决了这个问题,因为基本上我是通过php检索和操作数据。我使用:
在我的php文件中设置连接之后$conn = mysql_connect($dbhost, $dbuser, $dbpass);
提出以下内容。
mysql_set_charset('ISO-8859-1',$conn);
请注意,字符集设置为ISO-8859-1
,而不是utf8
。