Pase lo que pase con tus personajes, sucede antes de que lleguen a MySQL, supongo. La computadora convierte los caracteres en números cuando ingresamos los caracteres. Luego, estos números viajan de aquí para allá, entre formularios web y servidores, servidores web e intérpretes de secuencias de comandos, luego servidores de bases de datos y de vuelta a páginas web siguiendo el mismo camino.
¿Dónde y cómo ingresas tus datos? Los datos deben salir de la forma en que entraron. Si sus datos se proporcionan a través de formularios web, verifique las codificaciones de su página web y cómo envía los formularios. Cómo los obtiene en sus scripts PHP y cómo los envía al servidor de la base de datos. La parte culpable aquí probablemente no sea MySQL sino otro lugar. También puede ser MySQL; pero no es el único lugar de posible mala conducta y probablemente no lo sea.
Revisa tus páginas, revisa los encabezados a medida que llegan a tu navegador.
Acerca de los comentarios que recibió su pregunta, no, no es bueno usar ISO5 porque necesita múltiples familias ISO5. Debe ir con una codificación Unicode, la mayor parte del tiempo, siendo la mejor utf-8. Además, no se trata de qué biblioteca MySQL usa a menos que esa biblioteca tenga algunos errores conocidos, lo cual es muy poco probable para algo tan antiguo. :) Aún debe usar lo que se recomiende como mejores prácticas; pero su problema actual no está relacionado con la biblioteca que usa. El mal está en la diferencia entre cómo ingresas tus datos y cómo los ves.