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

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

尝试模拟问题I:


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


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

最佳答案

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


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

10-08 19:21