diff --git a/helpers/path.go b/helpers/path.go index 6e2422d05..2e154062e 100644 --- a/helpers/path.go +++ b/helpers/path.go @@ -124,7 +124,7 @@ func (p *PathSpec) UnicodeSanitize(s string) string { for i, r := range source { if r == '%' && i+2 < len(source) && ishex(source[i+1]) && ishex(source[i+2]) { target = append(target, r) - } else if unicode.IsLetter(r) || unicode.IsDigit(r) || unicode.IsMark(r) || r == '.' || r == '/' || r == '\\' || r == '_' || r == '-' || r == '#' || r == '+' { + } else if unicode.IsLetter(r) || unicode.IsDigit(r) || unicode.IsMark(r) || r == '.' || r == '/' || r == '\\' || r == '_' || r == '-' || r == '#' || r == '+' || r == '~' { target = append(target, r) } } diff --git a/helpers/path_test.go b/helpers/path_test.go index 049499108..f1407fb15 100644 --- a/helpers/path_test.go +++ b/helpers/path_test.go @@ -58,6 +58,8 @@ func TestMakePath(t *testing.T) { {"संस्कृत", "संस्कृत", false}, {"a%C3%B1ame", "a%C3%B1ame", false}, // Issue #1292 {"this+is+a+test", "this+is+a+test", false}, // Issue #1290 + {"~foo", "~foo", false}, // Issue #2177 + } for _, test := range tests {