В общем, лучший способ - изменить сортировку таблицы. Однако у меня есть старое приложение и на самом деле не могу оценить результат, имеет ли это побочные эффекты. Поэтому я попытался каким-то образом преобразовать строку в другой формат, который решил проблему сортировки. То, что я нашел, - это выполнить сравнение строк, преобразуя строки в шестнадцатеричное представление его символов. В базе данных это делается с помощью HEX(column).
. Для PHP вы можете использовать эту функцию:
public static function strToHex($string)
{
$hex = '';
for ($i=0; $i<strlen($string); $i++){
$ord = ord($string[$i]);
$hexCode = dechex($ord);
$hex .= substr('0'.$hexCode, -2);
}
return strToUpper($hex);
}
При выполнении запроса базы данных исходная строка UTF8 должна быть сначала преобразована в строку iso (например, с помощью utf8_decode()
в PHP), прежде чем использовать его в БД. Из-за типа сопоставления база данных не может содержать символы UTF8 внутри, поэтому сравнение должно работать, хотя это изменяет исходную строку (преобразование символов UTF8, которые не встречаются в символьной кодировке ISO, приводит к? Или они полностью удаляются). Просто убедитесь, что при записи данных в базу данных вы используете одно и то же преобразование UTF8 в ISO.
Приложение Create React использует Jest в качестве своей тестовой среды. Функция it принимает строку в качестве дескриптора, который позволяет пользователю назвать свои тесты и легко найти их в случае сбоя. Функция стрелки - это фактический тестовый код. Пример:
function add(x,y){
return x+y;
}
it("adds two and two", ()=> {
expect(add(2,2)).toEqual(4);
}