Возможно, у меня пока недостаточно понимания, поэтому я ищу небольшое направление.
Все наши таблицы показывают параметры сортировки latin1_swedish_ci. Вот что я вижу в переменных mysql:
collation connection utf8_general_ci
(Global value) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
Теперь мы видим, что utf8 (или, по крайней мере, контент на иностранном языке) довольно часто хранится в db, и он правильно отображает. Разве для этого не имеет значения сопоставление?
Использование чего-то вроде php addlashes () при вводе пользователем - достаточно ли этого? Или это оставляет возможность для инъекций?
EDIT:
Итак, глядя на полный набор параметров сортировки / кодировки, по крайней мере, в phpmyadmin, я вижу:
character set client utf8
(Global value) latin1
character set connection utf8
(Global value) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Global value) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_general_ci
(Global value) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci