Пожалуйста, сначала прочтите комментарии, этот ответ, вероятно, делает неправильные выводы из правильных источников, нуждается в редактировании.
Вы можете использовать любые печатные символы ASCII и не использовать специальные символы, такие как ✰ (что не ASCII )
Совет : вы можете кодировать что угодно в JSON.
Редактировать : поначалу может быть неочевидно, кодировка символов, определенная в заголовке, применяется только к телу ответа, а не к самому заголовку. (Так как это может вызвать проблемы с курицей и яйцом.)
Я хотел бы суммировать все соответствующие определения согласно spec , связанному с Penchant.
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 расшифровывается как Linear White Space. По сути, 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
ТЕКСТ является наиболее общим и включает в себя все остальное, так что забудьте об остальном.
Вот кодировка US-ASCII (= ASCII)
Как видите, разрешены все печатные символы ASCII.