It is the bytes—not the letters—that are encoded. That is why the same text produces different percent sequences in UTF-8 and a single-byte encoding, and one cannot be substituted for the other. The host follows a different rule: percent encoding does not work there; the domain name is converted to punycode.