1. 程式人生 > >Java中將字符串與unicode的相互轉換工具類

Java中將字符串與unicode的相互轉換工具類

png style nic ava param 字符串拼接 size tostring info

unicode編碼規則
unicode碼對每一個字符用4位16進制數表示。具體規則是:將一個字符(char)的高8位與低8位分別取出,轉化為16進制數,如果轉化的16進制數的長度不足2位,則在其後補0,然後將高、低8位轉成的16進制字符串拼接起來並在前面補上"\u" 即可。

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

原文地址:https://www.cnblogs.com/poterliu/p/9579918.html

聯系郵箱:[email protected]

聯系微信:poterliu

或者掃二維碼

技術分享圖片

轉換工具實現代碼:

/**
 * 字符串與unicode的相互轉換工具類
 * @author poterliu
 */
public class UnicodeConvertUtil {
    
    /** 
     * 將字符串轉成unicode 
     * @param str 待轉字符串 
     * @return unicode字符串 
     */ 
    public static String convert(String str) { 
        str = (str == null ? "" : str); 
        String tmp; 
        StringBuffer sb 
= new StringBuffer(1000); char c; int i, j; sb.setLength(0); for (i = 0; i < str.length(); i++) { c = str.charAt(i); sb.append("\\u"); j = (c >>>8); //取出高8位 tmp = Integer.toHexString(j); if (tmp.length() == 1) sb.append(
"0"); sb.append(tmp); j = (c & 0xFF); //取出低8位 tmp = Integer.toHexString(j); if (tmp.length() == 1) sb.append("0"); sb.append(tmp); } return (new String(sb)); } /** * 將unicode轉成字符串 * @param str 待轉字符串 * @return 普通字符串 */ public static String revert(String str) { str = (str == null ? "" : str); if (str.indexOf("\\u") == -1)//如果不是unicode碼則原樣返回 return str; StringBuffer sb = new StringBuffer(1000); for (int i = 0; i < str.length() - 6;) { String strTemp = str.substring(i, i + 6); String value = strTemp.substring(2); int c = 0; for (int j = 0; j < value.length(); j++) { char tempChar = value.charAt(j); int t = 0; switch (tempChar) { case ‘a‘: t = 10; break; case ‘b‘: t = 11; break; case ‘c‘: t = 12; break; case ‘d‘: t = 13; break; case ‘e‘: t = 14; break; case ‘f‘: t = 15; break; default: t = tempChar - 48; break; } c += t * ((int) Math.pow(16, (value.length() - j - 1))); } sb.append((char) c); i = i + 6; } return sb.toString(); } }

參考:

https://blog.csdn.net/yanqun1017/article/details/60955807

全文完

:)

Java中將字符串與unicode的相互轉換工具類