您的位置:首页 > 移动开发 > Android开发

Android 使用友盟等分享出现乱码的解决方案

2016-09-25 13:39 375 查看
Android 使用友盟等分享出现乱码的解决方案

一个app都会使用分享到某某等平台的功能,前段时间,在分享时遇到了一个坑爹的问题,分享出来的东西出现了乱码,然后试了不同设计,问题又来了,有的手机就会出现(国内某知名厂商的就会,不得不佩服这个公司牛逼),无奈之下,debug一步一步看,在那一步出现了问题,最终发现是webview 和js交互,得到的数据发生的问题。出现问题得图附上(有发现类似问题得可以参考一下)



将这些\u4ec4\u62c9…..去找Unicode将这些乱码进行转码,最终发现了根本原因。

Unicode编码转换 地址

最后针对这个问题将乱码进行了转换就能成功了。上个解决乱码问题得小Util(类似乱码可以参考一下)

package com.motoband.ui.manager;

/**
* Unicode编码转换管理类
*
* @auther madreain
*/

public class UnicodeToStringManager {

/***
* //Android_Unicode码转为汉字  自己可以对数据进行判断
* @param unicodeStr
* @return
*/
public static String decode(String unicodeStr) {
if (unicodeStr == null) {
return null;
}
StringBuffer retBuf = new StringBuffer();
int maxLoop = unicodeStr.length();
for (int i = 0; i < maxLoop; i++) {
if (unicodeStr.charAt(i) == '\\') {
if ((i < maxLoop - 5) && ((unicodeStr.charAt(i + 1) == 'u') || (unicodeStr.charAt(i + 1) == 'U')))
try {
retBuf.append((char) Integer.parseInt(unicodeStr.substring(i + 2, i + 6), 16));
i += 5;
} catch (NumberFormatException localNumberFormatException) {
retBuf.append(unicodeStr.charAt(i));
}
else
retBuf.append(unicodeStr.charAt(i));
} else {
retBuf.append(unicodeStr.charAt(i));
}
}
return retBuf.toString();
}

}


写个管理类,以后出现类似问题,继续补充,知识在于积累与沉淀!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐