Фундаментальный факт, который вы должны иметь в виду, когда говорите о такой проблеме, заключается в следующем: байты и текст - это две разные вещи, и когда вы конвертируете между ними, вы должны использовать правильную кодировку символов, т.е. будет использоваться для обратного преобразования и поддерживает все используемые символы.
Проблема в том, что с каждым дополнительным преобразованием и каждым дополнительным приложением есть шанс, что что-то пойдет не так. Веб-приложения являются наихудшим возможным случаем в этом отношении, поскольку всегда существует несколько конверсий (обычно 2 * (количество приложений-1)) и задействовано несколько различных приложений - как минимум: веб-приложение, браузер и БД. В вашем случае PHPMyAdmin также.
Трудно сказать, какое преобразование пошло не так, когда их так много. Тем не менее, похоже, что ваши проблемы вызваны PHPmyAdmin, так как он отображает умлауты в виде двух символов, что типично для приложений, которые пытаются интерпретировать байты в кодировке UTF-8 как Latin1. Теперь вопрос заключается в том, происходит ли ошибочное преобразование, когда PHPmyAdmin получает данные из БД или отправляет данные в ваш браузер. Какая кодировка объявлена PHPmyAdmin в заголовках его HTML-страниц? У вас есть возможность доступа к БД через не веб-приложение, такое как DbVisualizer ? Если это так, сделайте это, так как это устраняет одно преобразование (и, следовательно, возможность ошибки).