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

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

尝试模拟问题I:


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


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

最佳答案

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


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

关于node.js - 自定义HTTP header 值-尝试传递变音符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23489832/

10-12 15:21