Ответ 1
echo ('a' == 'A') ? 'a==A ' : 'a <> A ';
echo ('a' == 'á') ? 'a==á ' : 'a <> á ';
Оба вернулись <>
, поэтому я вывел, что PHP действует как latin1_bin
(или _bin
любой кодировки).
Вот запрос MySQL:
SELECT last_name FROM users ORDER BY last_name
Мы получаем все эти данные в PHP, а затем запускаем:
$prior = NULL;
do {
$current = array_shift($results);
assert($current >= $prior);
$prior = $current;
} while ($current !== NULL);
В настоящее время это утверждение не выполняется для определенных входов. Можно ли добавить предложение COLLATE в запрос MySQL выше, чтобы абсолютно гарантировать утверждение PHP?
Материал, который я пробовал:
ORDER BY email COLLATE utf8_bin
привело к COLLATION 'utf8_bin' is not valid for CHARACTER SET 'latin1'
Другие примечания:
latin1
echo ('a' == 'A') ? 'a==A ' : 'a <> A ';
echo ('a' == 'á') ? 'a==á ' : 'a <> á ';
Оба вернулись <>
, поэтому я вывел, что PHP действует как latin1_bin
(или _bin
любой кодировки).