Сравнение строк Mysql и PHP — нормализация Unicode?

В настоящее время у меня есть некоторые проблемы со сравнением строк между строками PHP и Mysql.
У меня есть переменная из базы данных Mysql, и я сравниваю ее с жестко закодированной:

$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. Символ «канонически эквивалентен», но не имеет того же значения.

Каков подход в такой ситуации? Я узнал PHP-класс Normalizer, это единственное жизнеспособное и чистое решение?

Благодарю.

1

Решение

Как nwellnhof указанная установка кодировки на соединение решила проблему. В моем случае мне пришлось использовать mysql_set_charset

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]