我正在使用一个"有趣"的HTML特殊字符(✰)(请参阅http://html5boilerplate.com/获取更多信息)获取ServerHTTP标头,并且我想知道它是否符合每个规范.
在Windows Xp Pro SP 3上使用Chrome中的开发工具中的网络选项卡,我看到✰很好.
在IE8中,✰ 未正确呈现.
w3.org HTML验证器无法正确呈现它(显示" â°"代替).
现在,我不太热衷于角色编码......坦率地说,我并不太关心它们; 我只是盲目地使用UTF-8 cus我被告知.:-)
是不是由不同的解析器/浏览/引擎/中的错误引起的差异(无论他们被称为什么)?
是否有针对此标准或可能是HTTP标头"值"的允许字符列表?
Kor*_*nel 116
简而言之:只保证ASCII能够正常工作.允许一些非ASCII字节用于向后兼容,但不应该是可显示的.
HTTPbis放弃并指定在标题中除了ASCII之外没有有用的编码:
从历史上看,HTTP允许在ISO-8859-1字符集[ISO-8859-1]中使用文本的字段内容,仅通过使用[RFC2047]编码支持其他字符集.实际上,大多数HTTP头字段值仅使用US-ASCII字符集[USASCII]的子集.新定义的标题字段应该将其字段值限制为US-ASCII八位字节.收件人应该将字段内容(obs-text)中的其他八位字节视为不透明数据.
以前,1999年的RFC 2616定义了这个:
只有当根据RFC 2047 [14]的规则进行编码时,*TEXT的字才能包含ISO-8859-1 [22]以外的字符集中的字符.
和RFC 2047是MIME编码,所以它是:
=?UTF-8?Q?=E2=9C=B0?=
Run Code Online (Sandbox Code Playgroud)
但我不认为很多(如果有的话)客户支持它.
zup*_*upa 10
请先阅读评论,这个答案很可能从正确的来源得出错误的结论,需要编辑.
你可以使用任何可打印的ASCII字符,也没有像✰那样的特殊字符(不是ASCII)
提示:您可以使用JSON编码任何内容.
编辑:一开始可能不明显,标题中定义的字符编码仅适用于响应主体,而不适用于标头本身.(因为它会导致鸡 - 蛋问题.)
我想根据Penchant链接的规范总结所有相关定义.
message-header = field-name ":" [ field-value ]
field-name = token
field-value = *( field-content | LWS )
Run Code Online (Sandbox Code Playgroud)
所以,我们追求的是实地价值.
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)>
Run Code Online (Sandbox Code Playgroud)
LWS代表Linear White Space.本质上,LWS是Space或Tab,但是你可以通过在Space或Tab之前开始一个新行来将你的字段值分成多行.
让我们简化它:
field-value = <any field-content or Space or Tab>
Run Code Online (Sandbox Code Playgroud)
现在我们追求的是现场内容.
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
Run Code Online (Sandbox Code Playgroud)
TEXT是最一般的,包括所有其余的 - 所以忘了其余的 - . 这是US-ASCII字符集(= ASCII)
如您所见,允许使用所有可打印的ASCII字符.
| 归档时间: |
|
| 查看次数: |
83519 次 |
| 最近记录: |