Lea los comentarios primero, esta respuesta probablemente extraiga conclusiones incorrectas de las fuentes correctas, necesita editarse.
Puede utilizar cualquier carácter ASCII imprimible y ningún carácter especial como ✰ (que no es ASCII )
Consejo : puedes codificar cualquier cosa en JSON.
Editar : puede que no sea obvio al principio, la codificación de caracteres definida en el encabezado solo se aplica al cuerpo de la respuesta, no al encabezado en sí. (Ya que causaría un problema de huevo y gallina).
Me gustaría resumir todas las definiciones relevantes según la especificación vinculada por Penchant.
message-header = field-name ":" [ field-value ]
field-name = token
field-value = *( field-content | LWS )
Entonces, estamos detrás del valor de 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 son las siglas de Linear White Space. Básicamente, LWS es Espacio o Tabulación, pero puede dividir su valor de campo en varias líneas comenzando una nueva línea antes de un Espacio o Tabulación.
Simplifiquemos esto a esto:
field-value = <any field-content or Space or Tab>
Ahora buscamos contenido de 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
TEXTO es el más general e incluye todo el resto -así que olvídate del resto-.
Aquí está el juego de caracteres US-ASCII (= ASCII)
Como puede ver, se permiten todos los caracteres ASCII imprimibles.