MySQL Collation или PHP для правильного отображения букв с диакритическими знаками
Вопрос
Какова наилучшая сортировка для столбца, которая позволяет хранить буквы с диакритическими знаками и идеально их анализировать без каких-либо ошибок кодирования, потому что всякий раз, когда я добавляю букву с диакритическими знаками, например é, å, это проявляется в проблеме кодировки на стороне PHP, но на стороне MySQL все в порядке...
Как сделать так, чтобы буквы с диакритическими знаками отображались правильно?
Решение
Вы получаете их правильно, сопоставляя кодировку на обоих концах, т.е.и ваш вывод PHP, и ваша БД должны использовать одну и ту же кодировку.Для европейских языков я бы предложил использовать UTF-8 как для ваших скриптов, так и для БД.Просто помните, что вам все равно придется инициализировать параметры сортировки UTF-8 в MySQL, используя SET NAMES 'utf8' COLLATE 'utf8_general_ci'
(поэтому запустите этот запрос сразу после подключения к БД, и все будет в порядке).
Другие советы
Возможно, ваша проблема не в базе данных, а в том, как вы отображаете данные из PHP?Какую кодировку контента вы указываете в выводе?Возможно, вам придется вручную отправить заголовок, чтобы указать, что содержимое имеет формат UTF-8, если вы пытаетесь его вывести.
Например: header("Content-Type: text/html; charset=UTF-8");