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();
}
}
写个管理类,以后出现类似问题,继续补充,知识在于积累与沉淀!