Can I use Unicode characters in HTTP headers?

2019-01-18 23:30发布

问题:

Is HTTP headers limited to US-ASCII charset?

Can I use unicode characters in HTTP headers?

Edit:

I want to do like this:

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

回答1:

First of all, the header field in your example does not allow what you want; media type names are ASCII.

In theory, HTTP header field values can transport anything; the tricky part is to get all parties (sender, receiver, and intermediates) to agree on the encoding.

Thus, the safe way to do this is to stick to ASCII, and choose an encoding on top of that, such as the one defined in RFC 5987.



回答2:

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

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