L'utilisateur @Joni m'a conduit à la solution.
Ajout de mysql_set_charset("utf8")
résolu mon problème.
Comme mentionné dans cet article :Pourquoi cet appel PHP à json_encode échoue-t-il silencieusement - incapacité à gérer les guillemets simples ? .