外文术语(如法语、汉语等)已通过PHP程序输入到我的MySQL表中。但是当我用这个词进行搜索时,它找不到记录。原因似乎是输入的术语以不同的方式存储在MySQL表中。
例如,在MysQL表中,条目是一个圣保罗。但是,当它是通过PHP输入的(当它通过PHP显示时),它显示为一个émie。虽然数据似乎有一种没有失去意义的方式,但它使得通过输入一个émie就不可能进行搜索。我希望这张桌子上有一位女士,这样搜索就会成功。
我已经检查了这个表,它被编码为UTF8。然而,并不是所有的字符集变量都是UTF8。
"character_set_client“值”=> string(6)“"latin1”} "character_set_connection“”值“”=> string(6)“"latin1”} "character_set_database“”值“”=>string“(4) "utf8”} "character_set_results“值”=> string(6) "latin1“character_set_server”值“=>string”(6) "latin1“}"character_set_system“值”=> string(4)“"utf8”}
我还尝试遵循MySQL手册中关于从一个字符集更改为另一个字符集的建议,使用alter,更改为blob,然后使用utf8字符集将alter更改为varchar。但这并没有效果。
有两个问题。首先,如何转换MySQL表中的数据,以便搜索可以找到它?第二,如何确保将来的条目以输入的方式进入表中?
发布于 2014-05-10 20:50:33
需要考虑的一件事是,必须将连接字符集设置为UTF-8。这几乎总是被遗忘。
您是如何做到这一点的,这取决于您正在使用的库。对于PDO,只需将;charset=utf8附加到连接字符串。
https://stackoverflow.com/questions/23586118
复制相似问题