美文网首页
Unicode与中文互转

Unicode与中文互转

作者: yunmuzhou丶 | 来源:发表于2018-11-20 10:43 被阅读0次

在应用开发和数据传输、持久化过程中,中文与 unicode 互转是相当有用的,比如说社交应用中经常用到的传输存储 emoji 表情。整理为工具类后更是方便统一调用,话不多说上源码:

/**
 * <p>unicode 编码解码工具类<p>
 *
 */
public class UnicodeUtil {
 
    /**
     * <p>转为unicode 编码<p>
     * @param string
     * @return unicodeString
     */
    public static String encode(String str) {
        String prifix = "\\u";
        StringBuffer unicode = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            String code = prifix + format(Integer.toHexString(c));
            unicode.append(code);
        }
        return unicode.toString();
    }
 
    /**
     * <p>unicode 解码<p>
     * @param unicode
     * @return originalString
     */
    public static String decode(String unicode) {
        StringBuffer str = new StringBuffer();
        String[] hex = unicode.split("\\\\u");
        for (int i = 1; i < hex.length; i++) {
            int data = Integer.parseInt(hex[i], 16);
            str.append((char) data);
        }
        return str.length() > 0 ? str.toString() : unicode;
    }
    
    /**
     * <p>转为数据库查询编码<p>
     * 向数据库查询时,\\u需要转为%
     * @param str
     * @return
     */
    public static String encodeDBSearchParam(String str) {
        str = encode(str);
        str = str.replace("\\", "%");
        return str;
    }
    
    /**
     * <p>解码数据库查询参数<p>
     * 数据库查询后,回传参数% 转回\\u
     * @param str
     * @return
     */
    public static String decodeDBSearchParam(String str) {
        str = str.replace("%", "\\");
        str = decode(str);
        return str;
    }
    
    /**
     * 为长度不足4位的unicode 值补零
     * @param str
     * @return
     */
    private static String format(String str) {
        for ( int i=0, l=4-str.length(); i<l; i++ ) 
            str = "0" + str;
        return str;
    }
 
}

[原文链接](https://blog.csdn.net/u011704894/article/details/51706519

相关文章

网友评论

      本文标题:Unicode与中文互转

      本文链接:https://www.haomeiwen.com/subject/uketqqtx.html