pub fn push_encoded(out: &mut String, text: &str, keep: impl Fn(u8) -> bool)
Every byte keep refuses as %XX; bytes outside ASCII always are.
keep
%XX