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