РЕДАКТИРОВАТЬ: После отзыва из моего исходного сообщения, я изменил текст, чтобы прояснить мою проблему.
У меня следующий запрос (псевдокод):
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_query("SET NAMES 'utf8'; COLLATE='utf8_danish_ci';");
mysql_query("SELECT id FROM myTable WHERE name = 'Fióre`s måløye'", $conn);
Возвращает 0 строк.
В моем лог-файле я вижу это:
255 Connect root@localhost on
255 Query SET NAMES 'utf8'; COLLATE='utf8_danish_ci'
255 Init DB norwegianfashion
255 Query SELECT id FROM myTable WHERE name = 'Fióre`s måløye'
255 Quit
- Если я запускаю запрос непосредственно в phpMyAdmin, я получаю результат.
- Таблица кодировки: UTF-8
- Кодировка HTML-страницы: UTF-8
- Я могу добавить записи (из формы ввода), где в именах используются акценты (например, "Fióre`s Häßelberg")
- Я могу читать записи с ударением при использовании -> "name LIKE '$ labelName%'"
- Информация в БД выглядит нормально
Понятия не имею, почему я не могу выбрать строки, в имени которых есть символы ударения.
Я действительно надеюсь, что кто-то может мне помочь.
ОБНОВЛЕНИЕ 1:
Я пришел к компромиссу. Я буду конвертировать акценты с htmlentities при хранении данных и html_entity_decode при извлечении данных из БД. Кажется, это работает.
Единственный недостаток, который я пока вижу, это то, что я не могу читать имена в открытом тексте с помощью phpMySQL.