Skip to main content

strip_css_comments

Function strip_css_comments 

Source
pub(crate) fn strip_css_comments(css: &str) -> String
Expand description

CSSコメント /* ... */ を除去する。 バイト単位でコメント区切り(/*/*/、いずれも1バイトASCII)だけを検出し、それ以外の バイトはそのままコピーする。UTF-8の継続バイト(0x80-0xBF)がASCIIの//*と衝突すること は無いため、この方式でマルチバイト文字(絵文字や 等)を破壊せずに処理できる。 旧実装は bytes[i] as char で1バイトずつchar化しており、マルチバイト文字が Latin-1的に誤変換される致命的なバグがあった(例: (E2 98 85) → ‘â’ + 制御文字2つ)。