[6] CSS ではほとんどあらゆるところで文字を escape して使うことができます。
[8] CSS の他、共通の構文を使っている、選択子や媒体照会でも escape を使えます。
\
の後に十六進数 (大文字または小文字) が続く場合、\
の後に改行が続く場合、\
の後にそれ以外が続く場合、その続いた文字自体を表します >>7\
は DELIM
字句とみなされます >>7\
は特別な意味を持たず、単なる注釈の中の文字列とみなされます >>7[30] >>29 Firefox は \000000
を 000000
と解釈します。
chrome は U+0000
と解釈します。
WinIE8 と Opera はその字句の当該 escape 以降を無視します。
[32] Chrome だと >>29 は cssText
で
\0
とか \1
になってるけど、 >>28 では escape されないでそのまま入ってるっぽい。
[35] 十六進数が U+10FFFF
よりも大きい時、 Gecko と Chrome
は U+FFFD
とみなし、 WinIE8 は U+003F
とみなします。
Opera は high surrogate を UTF-16 の範囲より先に進めた surrogate pair のようなものとして表現した値
(U-00110000
→ U+DC00 U+DC00
) とみなします。
[38] Chrome, Firefox, WinIE8, Opera のいずれも、 surrogate pair を escape したものをそのまま解釈します。
[39] Chrome, WinIE8, Opera は正しい surrogate pair になっていない
surrogate code point を escape したものをそのまま解釈します。
Firefox は U+FFFD
と解釈します。
[41] Chrome と Opera は、片割れだけ escape された surrogate
はそのまま surrogate pair であるものと解釈します。
Firefox は解釈しません (>>42 は青くなり、 escape の方は U+FFFD
とみなしています)。
U+0020
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%20v%20%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+0009
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%09v%20%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+000A
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%0Av%20%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+000D
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%0Dv%20%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+000D
U+000A
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%0D%0Av%20%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+000C
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%0Cv%0D%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+00A0
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%C2%A0v%0D%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+2000
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%E2%80%80v%0D%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+3000
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%E3%80%80v%0D%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-elementU+FEFF
http://suika.suikawiki.org/gate/2007/cssom/viewer?c=di%5C%EF%BB%BFv%0D%7B%0D%0A%20%20color%3A%20blue%3B%0D%0A%7D;h=%3Cdiv%3Exxxxxx%3C%2Fdiv%3E;p=n;x=style-element[4]
>>3 WinIE 6 では textarea
に入れた時点 (or もっと前) で
U+0000
以下が捨てられてるみたいです。。。
[33] >>3 WinIE8 と Opera は >>4 と同じでよくわかりません。 Chrome は非妥当とみなします。
Firefox は U+0000
と解釈します。
[43] SSEを使ってHTMLエスケープを高速化してみた - k0kubun's blog () http://k0kubun.hatenablog.com/entry/hescape
[44] Big Sky :: SSE を使わなくても HTML エスケープはある程度速くできる。 () http://mattn.kaoriya.net/software/lang/c/20160817011915.htm
[45] [cssom] Serialize U+0000 in string as U+FFFD, NOT escaped as code point (zcorpan著, ) https://github.com/w3c/csswg-drafts/commit/f8b1bcccbd543fae5eebc04730a7e647c197fa2e
CRLF
,CR
,LF
,FF
のいずれかです。空白はそれに加えてHT
,SP
です。