Valeur d’en-tête HTTP personnalisée – tentative de transmission des caractères de tréma

J’utilise Node.js et Express.js 3.x.

En tant qu’un de nos en-têtes d’autorisation, nous transmettons le nom d’utilisateur. Certains de nos noms d’utilisateur contiennent des caractères de tréma: ü ö ä et autres. Pour les noms d’utilisateur ne contenant que des caractères “normaux”, tout fonctionne correctement. Mais quand un jörg essaie de faire une requête, le serveur ne reconnaît pas le caractère tréma dans l’en-tête.

Essayer de simuler le problème I:

  • Création de tests définissant l’en-tête de nom d’utilisateur avec le caractère tréma. Ces tests réussissent, ils sont capables de transmettre le tréma correctement.
  • Utilisé les extensions Chrome ‘postman’ et ‘advanced rest client’ et a effectué la demande manuellement sur le serveur – dans ce cas, cela a échoué. J’ai vu le serveur est incapable de reconnaître le caractère de tréma, il joutes interprété comme une sorte de ? .

Existe-t-il une limitation des caractères d’en-tête HTTP personnalisés interdisant l’utilisation de ce type de caractères? Avez-vous une idée du pourquoi cela fonctionnerait dans les tests mais pas depuis l’extension de mon navigateur? Est-ce que j’oublie de définir un jeu de caractères quelque part?

Résumé de ce qui a été écrit dans l’autre question connexe et dans les commentaires:

  • Vous pouvez insérer n’importe quel caractère ASCII ‘imprimable’ dans votre champ de valeur d’en-tête personnalisé.
  • Si vous souhaitez utiliser des caractères spéciaux, encodez-les en respectant les règles / charset / encoding de votre choix. Tant que cet encodage utilise de simples caractères ASCII, tout va bien. Un exemple consiste à utiliser UTF-8 et à encoder des caractères de chaîne à \ u %%.
  • Côté serveur – vous devez définir manuellement la chaîne codée, probablement en la décodant à l’aide des règles du jeu de caractères / paradigme de codage que vous avez précédemment choisi