UTF-8 bytes ↔ hex; decoding ignores spaces and optional 0x.
Whitespace and 0x prefixes are stripped on decode.