Il suffit de se demander ce qui se cache derrière la scène. En fait, il semble que nous pouvons définir l'encodage avec:
response.setContentType("text/html; charset=UTF-8")
response.setCharacterEncoding("UTF-8")
Quelle est la différence?
Le javadoc est assez clair sur la différence:
void setCharacterEncoding(String charset)
Définit le codage de caractères (jeu de caractères MIME) de la réponse envoyée au client, par exemple, en UTF-8. Si le codage des caractères a déjà été défini parsetContentType(Java.lang.String)
ousetLocale(Java.util.Locale)
, cette méthode le remplace. AppelersetContentType(Java.lang.String)
avec la chaîne detext/html
Et appeler cette méthode avec la chaîne de UTF-8 équivaut à appelersetContentType
avec le Chaîne detext/html; charset=UTF-8
.
void setContentType(String type)
Définit le type de contenu de la réponse envoyée au client, si la réponse n'a pas encore été validée. Le type de contenu donné peut inclure une spécification de codage de caractères, par exemple,text/html;charset=UTF-8
.