Lorsque je fais une demande POST avec un corps JSON à mon service REST, j'inclus Content-type: application/json; charset=utf-8
dans l'en-tête du message. Sans cet en-tête, je reçois une erreur du service. Je peux également utiliser avec succès Content-type: application/json
sans le ;charset=utf-8
portion.
Que fait exactement charset=utf-8
faire ? Je sais qu'il spécifie le codage des caractères, mais le service fonctionne bien sans cela. Cet encodage limite-t-il les caractères qui peuvent figurer dans le corps du message ?
5 votes
Jeter un coup d'œil à hanselman.com/blog/
11 votes
De manière intrigante, selon L'IANA
application/json
Enregistrement du type de média il ne semble pas qu'il y ait un supportcharset
bien qu'il soit souvent fourni dans la pratique.1 votes
I know it specifies the character encoding but the service works fine without it.
"fonctionner" ne signifie pas toujours "le code/la configuration existant(e) est la manière la plus correcte, couvrant tous les cas de figure, de faire une chose". Cela dépend de toutes les conventions et hypothèses qui peuvent ne pas fonctionner dans d'autres circonstances. Personnellement, j'essaie toujours d'être aussi explicite que possible.6 votes
L'envoi d'un paramètre "charset" est incorrect et dénué de sens. Voir RFC 8259, section 11, dernière phrase.