Mysql和PHP字符串比较 - Unicode规范化?

时间:2016-05-04 13:24:21

标签: php mysql unicode normalization

我目前在使用PHP和Mysql字符串之间的字符串比较时遇到了一些问题。 我有一个来自Mysql DB的变量,我将它与硬编码的数据进行比较:

$string_from_mysql = "Información" //comes from DB read;
$test_string = "Información" //hard coded via text editor;
$test = strpos($string_from_mysql,$test_string); -> Returns false

问题似乎与ó相关,在$ string_from_mysql中,字符具有0x00F3值,而在$ test_string上,字符为0xC3 0xB3。 显然,这会导致strpos的“错误”返回值。该字符是“规范等效的”,但它没有相同的值。

在这种情况下采用什么方法?我发现了Normalizer PHP类,它是唯一可行且干净的解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:1)

正如nwellnhof所说设置连接上的字符集解决了这个问题。在我的情况下,我必须使用mysql_set_charset