UrlUtil.decodeURIComponent treated every non-ASCII character as a raw
UTF-8 byte, even when it was never percent-encoded, so paths that already
contain literal characters like ü or 日 were corrupted into the
replacement character. Now only real %XX escapes are decoded and all
other characters are left untouched.
Backport of #25672 to 25.2. The ResourceFolderUtilTest case from the
original PR is omitted because ResourceFolderUtil does not exist on 25.2.
Co-authored-by: Artur Signell <260340+Artur-@users.noreply.github.com>
UrlUtil.decodeURIComponent treated every non-ASCII character as a raw UTF-8 byte, even when it was never percent-encoded, so paths that already contain literal characters like ü or 日 were corrupted into the replacement character. Now only real %XX escapes are decoded and all other characters are left untouched.
Backport of #25672 to 25.2. The ResourceFolderUtilTest case from the original PR is omitted because ResourceFolderUtil does not exist on 25.2.