добро пожаловать в Charset Hell.
В PHP, чтобы использовать определенный набор символов, абсолютно все должно быть в одном наборе символов.Если вы собираетесь использовать UTF8, то все должно быть UTF8.База данных должна использовать UTF8 в качестве своей кодировки, соединение между сценарием и базой данных должно быть UTF8 (похоже, вы уже позаботились об этом), сам скрипт PHP должен быть сохранен как файл UTF8 (без спецификации, потому что наличие спецификации только потом вызовет больше проблем), а браузер должен просматривать страницу, сгенерированную сценарием в UTF8 (вы должны использовать команду header () для отправки заголовка типа содержимого, который указываетэтот).
Если какая-либо ссылка в цепочке не является UTF8, вы в конечном итоге получите нежелательные сообщения для определенных последовательностей символов, которые действительны в одной кодировке символов, но не в другой.Хотя PHP имеет функции для преобразования между кодировками, он быстро запутывается и его лучше избегать.