项目中一个分享链接中包含了中文字符,导致分享到微信后链接被截断不能完整识别,如下图:
自然想到需要对URL进行编码,但是使用URLEncoder.encode方法编码后,发现符号也被编码了,比如https://被替换为https%3A%2F%2F,链接直接就识别不了了,如下图:
那么,怎样才能只把中文字符编码一下呢?
⭐解决方案如下:
使用Uri.encode对字符串进行编码,可以定义保留字符:
String allowUriChars = "@#&=*+-_.,:!?()/~'%";
String result = Uri.encode(urlStr, allowUriChars);
结果:
只编码了中文字符,链接可以被微信正常识别。