请先阅读评论,此答案可能会从正确的来源得出错误的结论,需要进行编辑。
您可以使用任何可打印的ASCII字符,并且不能使用诸如✰(不是ASCII)的特殊字符。
提示:您可以使用JSON进行编码。
编辑:起初可能并不明显,标头中定义的字符编码仅适用于响应正文,不适用于标头本身。(因为这会导致鸡和蛋的问题。)
我想根据Penchant链接的规范总结所有相关定义。
message-header = field-name ":" [ field-value ]
field-name = token
field-value = *( field-content | LWS )
因此,我们追求field-value。
LWS = [CRLF] 1*( SP | HT )
CRLF = CR LF
CR = <US-ASCII CR, carriage return (13)>
LF = <US-ASCII LF, linefeed (10)>
SP = <US-ASCII SP, space (32)>
HT = <US-ASCII HT, horizontal-tab (9)>
LWS代表线性空白。本质上,LWS是空格或制表符,但是您可以通过在空格或制表符之前开始新行来将字段值分成多行。
让我们简化为:
field-value = <any field-content or Space or Tab>
现在我们关注领域内容。
field-content = <the OCTETs making up the field-value
and consisting of either *TEXT or combinations
of token, separators, and quoted-string>
OCTET = <any 8-bit sequence of data>
TEXT = <any OCTET except CTLs,
but including LWS>
CTL = <any US-ASCII control character
(octets 0 - 31) and DEL (127)>
token = 1*<any CHAR except CTLs or separators>
separators = "(" | ")" | "<" | ">" | "@"
| "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | "="
| "{" | "}" | SP | HT
TEXT是最通用的,包括所有其余部分,因此请忽略其余部分。
这是US-ASCII字符集(= ASCII)
如您所见,允许所有可打印的ASCII字符。