Currently when I pass a param to $state.go that includes a ~ it duplicates when the url is being created.
Example:
I search for ~abc. Then pass to $state.go('.', {myParam: "~abc"}). Then inside url I have https://localhost/somePath?myParam=~~abc
According to RFC3986 the '~' must be percent-encoded in HTML forms to "%7E". If I encode prior then I still have the same issue. So I assume the value must be handled inside of $stateProvider or by customizing $urlmatcherfactoryprovider inside of UI router.