我正在使用 Node.js 和 Express.js 3.x。
作为我们的授权 header 之一,我们传递用户名。我们的一些用户名包含元音变音字符:ü ö ä 等。 对于仅包含“正常”字符的用户名,一切正常。但是,当 jörg 尝试发出请求时,服务器无法识别 header 中的变音字符。
尝试模拟问题 I:
- 创建了一些使用变音字符设置用户名标题的测试。这些测试通过了,他们能够正确地通过变音符号。
- 使用“ postman ”和“高级休息客户端”Chrome 扩展程序,并向服务器手动发出请求 - 在本例中失败。我看到服务器无法识别元音变音字符,它只是将其解释为某种
?
。
自定义 HTTP header 值字符是否有任何限制,禁止使用此类字符?知道为什么它可以在测试中工作,但不能在我的浏览器扩展中工作吗?我是否忘记在某处设置一些字符集?
最佳答案
其他相关问题和评论中所写内容的摘要:
- 您可以输入任何'printable' ASCII char在您的自定义 header 值字段中。
- 如果您想使用特殊字符,请按照您选择的任何规则/字符集/编码对这些字符进行编码。只要这个编码使用简单的 ASCII 字符,就可以了。一个示例是使用 UTF-8 并将字符串字符编码为\u%%。
- 在服务器端 - 您必须手动理解编码的字符串,可能是使用您之前选择的字符集/编码范例的规则对其进行解码。
关于node.js - 自定义 HTTP header 值 - 尝试传递元音变音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23489832/