The URL code for # is %23. When a WebDAV server receives a URL containing a literal #, it ignores everything after the symbol (e.g. http://host.com/file#1234.txt becomes http://host.com/file), presumably because # is reserved for HTML anchors.
Now, webdav_client uses Uri.encodeFull to encode URLs. From the docs:
All characters except uppercase and lowercase letters, digits and the characters !#$&'()*+,-./:;=?@_~ are percent-encoded.
This means that if any method from webdav_client receives a file path containing the symbol #, it will not encode it and the server will receive a truncated request URL, which results in unexpected behaviour.
The URL code for
#is%23. When a WebDAV server receives a URL containing a literal #, it ignores everything after the symbol (e.g.http://host.com/file#1234.txtbecomeshttp://host.com/file), presumably because # is reserved for HTML anchors.Now,
webdav_clientusesUri.encodeFullto encode URLs. From the docs:This means that if any method from
webdav_clientreceives a file path containing the symbol#, it will not encode it and the server will receive a truncated request URL, which results in unexpected behaviour.