file.txt est enregistré dans ISO-8859-1 ou Windows-1252 (ces deux sont très similaires) et est interprété comme UTF-8 par MySQL. Ceux-ci sont incompatibles.
Comment puis-je le savoir ?
- Voir point 3. :le fichier s'affiche correctement lorsqu'il est interprété comme ISO-8859-1 ou Windows-1252.
- Voir point 1. :character_set_database :utf8
Solution :soit convertir le fichier en UTF-8, soit dire à MySQL de l'interpréter comme ISO-8859-1 ou Windows-1252.
Contexte :les caractères que vous fournissez (ã, etc.) sont des valeurs à un octet dans Windows-1252, et ces octets sont des valeurs illégales dans UTF-8, ce qui donne les '?' (caractères de remplacement Unicode).
Extrait de documentation MySQL :