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

来源:互联网 发布:嘀哩嘀哩软件下载 编辑:程序博客网 时间:2024/05/19 09:40

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();    }}

写个管理类,以后出现类似问题,继续补充,知识在于积累与沉淀!

1 0