请先阅读评论,本答案可能从正确的来源中得出错误的结论,需要编辑。
您可以使用任何可打印的ASCII字符,但不能使用特殊字符,例如✰(不是ASCII)
提示:您可以在JSON中编码任何内容。
编辑:可能一开始不太明显,头部定义的字符编码仅适用于响应正文,而不适用于头部本身。(因为这会导致鸡生蛋蛋生鸡的问题。)
根据Penchant提供的spec,我希望能够总结所有相关定义。
message-header = field-name ":" [ field-value ]
field-name = token
field-value = *( field-content | LWS )
所以,我们需要的是
字段值。
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”。
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字符都是被允许的。