一尘不染

自定义HTTP标头值-尝试传递变音符

node.js

我正在使用Node.js和Express.js3.x。

作为我们的授权标头之一,我们传入用户名。我们的某些用户名包含变音符号:üöä和之类的。对于仅带有“正常”字符的用户名,一切正常。但是,当jörg尝试发出请求时,服务器无法识别标头中的变音符。

尝试模拟问题我:

  • 创建了一些测试,将用户名标头设置为umlaut字符。这些测试通过,它们能够正确通过变音符号。
  • 使用了“邮递员”和“高级其余客户” Chrome扩展程序,并针对服务器手动提出了请求-在这种情况下,请求失败。我看到服务器无法识别变音符号,它认为它是某种形式的?

自定义HTTP标头值字符是否有禁止使用这些字符的限制?知道为什么它可以在测试中起作用但不能从我的浏览器扩展中起作用吗?我是否忘记在某个地方设置一些字符集?


阅读 234

收藏
2020-07-07

共1个答案

一尘不染

其他相关问题和评论中所写内容的摘要:

  • 您可以在自定义标头值字段中放入任何 “可打印” ASCII字符
  • 如果要使用特殊字符,请按照选择的任何规则/字符集/编码对这些字符进行编码。只要此编码使用简单的ASCII字符,就可以。一个示例是使用UTF-8并将字符串char编码为\ u %%。
  • 在服务器端-您必须手动使用已编码的字符串,可能是通过使用之前选择的字符集/编码范例的规则对其进行解码的。
2020-07-07