fix(uri): hash tag is not properly handled in CrUri

pull/2224/merge 4.0.0-beta.9
Aaron Liu 2025-05-08 19:19:54 +08:00
parent c5467f228a
commit fbf1d1d42c
2 changed files with 3 additions and 4 deletions

2
assets

@ -1 +1 @@
Subproject commit 5e8e63b37895172e162d34a97c4991fb2869ceb3
Subproject commit 8e96f4d3de2519f374dc6d49d2fb2a68d859c33f

View File

@ -344,11 +344,10 @@ func NewShareUri(id, password string) string {
return fmt.Sprintf("%s://%s@%s", constants.CloudreveScheme, id, constants.FileSystemShare)
}
// PathEscape is same as url.PathEscape, with modifications to incoporate with JS encodeURI:
// PathEscape is same as url.PathEscape, with modifications to incoporate with JS encodeURIComponent:
// encodeURI() escapes all characters except:
//
// AZ az 09 - _ . ! ~ * ' ( )
// ; / ? : @ & = + $ , #
func PathEscape(s string) string {
hexCount := 0
for i := 0; i < len(s); i++ {
@ -412,7 +411,7 @@ func shouldEscape(c byte) bool {
}
switch c {
case '-', '_', '.', '~', '!', '*', '\'', '(', ')', ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '#': // §2.3 Unreserved characters (mark)
case '-', '_', '.', '~', '!', '*', '\'', '(', ')': // §2.3 Unreserved characters (mark)
return false
}