Mysql
 sql >> база данни >  >> RDS >> Mysql

mySQL - съвпадение на латински (английски) формуляр за въвеждане на utf8 (не-английски) данни

Възможно решение би било създаването на друга колона в базата данни до "artist", като "artist_normalized". Тук, докато попълвате таблицата, можете да вмъкнете "нормализирана" версия на низа. След това може да се извърши търсене в колоната artist_normalized.

Тестов код:

<?php
$transliterator = Transliterator::createFromRules(':: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;', Transliterator::FORWARD);
$test = ['abcd', 'èe', '€', 'àòùìéëü', 'àòùìéëü', 'tiësto'];
foreach($test as $e) {
    $normalized = $transliterator->transliterate($e);
    echo $e. ' --> '.$normalized."\n";
}
?>

Резултат:

abcd --> abcd
èe --> ee
€ --> €
àòùìéëü --> aouieeu
àòùìéëü --> aouieeu
tiësto --> tiesto

Магията е направена от класа Transliterator. Посоченото правило изпълнява три действия:декомпозира низа, премахва диакритичните знаци и след това прекомпонира низа, канонизиран. Транслитераторът в PHP е изграден върху ICU, така че като правите това, разчитате на таблиците на библиотеката на ICU, които са завършени и надежден.

Забележка:това решение изисква PHP 5.4 или по-нова версия с intl разширение.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате phpMyAdmin

  2. STR_TO_DATE() Примери – MySQL

  3. Какви са най-добрите практики за самоактуализиращи се PHP+MySQL приложения?

  4. Анализирайте и сравнявайте данни с помощта на Coldfusion и MySQL

  5. MySql с JAVA грешка. Последният пакет, изпратен успешно до сървъра, беше преди 0 милисекунди