Si prega di leggere prima i commenti, questa risposta probabilmente trae conclusioni sbagliate dalle fonti giuste, necessita di modifiche.
Puoi usare qualsiasi carattere ASCII stampabile e nessun carattere speciale come ✰ (che non è ASCII )
Suggerimento : puoi codificare qualsiasi cosa in JSON.
Modifica : all'inizio potrebbe non essere ovvio, la codifica dei caratteri definita nell'intestazione si applica solo al corpo della risposta, non all'intestazione stessa. (Poiché causerebbe un problema con uova e gallina.)
Vorrei riassumere tutte le definizioni rilevanti secondo le specifiche collegate da Penchant.
message-header = field-name ":" [ field-value ]
field-name = token
field-value = *( field-content | LWS )
Quindi, stiamo cercando valore di campo .
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 è l'acronimo di Linear White Space. Essenzialmente, LWS è spazio o tabulazione, ma puoi suddividere il valore del campo in più righe iniziando una nuova riga prima di uno spazio o di una tabulazione.
Semplifichiamolo in questo modo:
field-value = <any field-content or Space or Tab>
Ora stiamo cercando il contenuto del campo .
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
TESTO è il più generale e include tutto il resto, quindi dimentica il resto.
Ecco il set di caratteri US-ASCII (= ASCII)
Come puoi vedere, sono consentiti tutti i caratteri ASCII stampabili.