Describe the bug
When exporting a profile to a QR code or to clipboard within the app, any apostrophes (') contained within the remark/tag/profile name are not URL-encoded to %27. This causes Shadowsocks Android to truncate the profile name after the first apostrophe.
To Reproduce
Steps to reproduce the behavior:
Problem only happens on import. The exported URI is perfect.
For example, the app exports one of my profiles to:
ss://<BASE64>@<SERVER:PORT>#Richard's%20Server
(placeholders were added). The profile name should be "Richard's Server".
After importing from clipboard, the profile name shows "Richard" instead, because the apostrophe is not handled properly. Please see screenshots as well.
Expected behavior
Exporting URI should URL-encode apostrophes (') to %27. This will allow profile names to be exported properly because an apostrophe is a special character.
Screenshots
Before importing:

After importing from clipboard:

Device:
Configuration
Not applicable. This bug is only relevant to the profile name.
Additional context
It seems that the apostrophe is the only character not properly handled. I have not tested other characters extensively, but "@" is URL-encoded properly.
It looks ' should not be encoded. The problem here we dropped the character when importing.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
Most helpful comment
It looks
'should not be encoded. The problem here we dropped the character when importing.https://stackoverflow.com/questions/31511922/is-uri-encode-in-android-equivalent-to-encodeuricomponent-in-javascript
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent