问题 我可以在HTTP标头中使用Unicode字符吗?


HTTP标头是否仅限于US-ASCII字符集?

我可以在HTTP标头中使用unicode字符吗?

编辑

我想这样做:

WebClient myWebClient = new WebClient();
myWebClient.Headers.Add("Content-Type","یونیکد");

2858
2017-09-27 09:46


起源

你正在寻找什么? >> w3.org/International/O-HTTP-charset - JMax
可能重复 HTTP协议使用哪种编码? - Thilo


答案:


首先,示例中的标题字段不允许您想要的内容;媒体类型名称是ASCII。

理论上,HTTP头字段值可以传输任何东西;棘手的部分是让所有各方(发送方,接收方和中间方)就编码达成一致。

因此,执行此操作的安全方法是坚持使用ASCII,并在其上选择编码,例如在中定义的编码 RFC 5987


18
2017-09-27 11:55



了解哪些流行的用户代理和代理支持RFC 5987非常有用。 - Piotr Dobrogost
Piotr:RFC 5987只能用于头字段中的参数,然后才能用于发送方和接收方之间的参数,例如Content-Disposition的文件名参数。 - Julian Reschke


Accept-Charset:iso-8859-5,unicode-1-1; q = 0.8

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


-4
2017-09-27 09:50



这不适用于文件而不是标题吗? - Mark