fn uri_encode(s: &str) -> String
Percent-encodes a string per RFC 3986, leaving the SigV4 unreserved set (A-Z a-z 0-9 - _ . ~) intact.
A-Z a-z 0-9 - _ . ~