Lütfen önce yorumları okuyun, bu cevap muhtemelen doğru kaynaklardan yanlış sonuçlar çıkarır, düzeltilmesi gerekir.
Yazdırılabilir herhangi bir ASCII karakterini kullanabilirsiniz ve ✰ gibi özel karakterler kullanamazsınız ( ASCII değildir )
İpucu : JSON'daki her şeyi kodlayabilirsiniz.
Düzenleme : ilk bakışta açık olmayabilir, başlıkta tanımlanan karakter kodlaması, başlığın kendisi için değil, yalnızca yanıt gövdesi için geçerlidir. (Tavuk ve yumurta sorununa neden olacağı için.)
Tüm ilgili tanımları Penchant tarafından bağlanan spesifikasyona göre özetlemek istiyorum.
message-header = field-name ":" [ field-value ]
field-name = token
field-value = *( field-content | LWS )
Yani, alan değerinin peşindeyiz .
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, Doğrusal Beyaz Boşluk anlamına gelir. Esasen, LWS Boşluk veya Sekmedir, ancak alan değerinizi bir Boşluk veya Sekmeden önce yeni bir satır başlatarak birden çok satıra bölebilirsiniz.
Bunu şu şekilde basitleştirelim:
field-value = <any field-content or Space or Tab>
Şimdi tarla içeriğinin peşindeyiz .
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
METİN en genel olanıdır ve geri kalan her şeyi içerir - yani gerisini unutun-.
US-ASCII karakter kümesi (= ASCII)
Gördüğünüz gibi, yazdırılabilir tüm ASCII karakterlerine izin verilmektedir.