mirror of
https://github.com/rclone/rclone.git
synced 2026-03-26 03:12:36 -04:00
URLPathEscapeAll was only passing [A-Za-z0-9/] through unencoded, causing it to percent-encode RFC 3986 unreserved characters (-, ., _, ~). Per RFC 3986 §2.3, unreserved characters MUST NOT be percent-encoded, and a URI that unnecessarily encodes them is not equivalent to one that does not. Servers that perform strict path matching without normalising percent-encoded characters will reject the over-encoded form with a 404. Before: /files/my-report.pdf → /files/my%2Dreport%2Epdf After: /files/my-report.pdf → /files/my-report.pdf Reserved characters (spaces, semicolons, colons, etc.) continue to be encoded as before.