PHP代码如下:
trim(strtolower(utf8_encode($res->translation))) == trim(strtolower(utf8_encode($ph)))
例如,返回false,例如:$res->translation = "Bottines À Talons Hauts"
和$ph = "bottines à talons hauts"
。问题应该是一个奇怪的À
字母,因为其他单词完全匹配。
需要提到的是$res->translation
来自MySQL,而$ph
是来自HTML页面中textarea的短语。
有什么想法吗?
答案 0 :(得分:1)
http://www.php.net/manual/en/function.strtolower.php
返回字符串,其中所有字母字符都转换为小写。
请注意,'alphabetic'由当前区域设置决定。这意味着在默认的“C”语言环境中,诸如umlaut-A(Ä)之类的字符将不会被转换。
这应该使用mb_strtolower和强制UTF-8来解决
trim(mb_strtolower(utf8_encode($res->translation),'UTF-8')) == trim(mb_strtolower(utf8_encode($ph),'UTF-8'))
答案 1 :(得分:0)
可能需要使用utf8编码建立数据库连接。
建立连接时请尝试以下操作:
$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8',$link);
注意:尽管
,最好使用mysqli或PDO