java編碼經常使用的函數

java內部使用utf-16編碼 UTF-16 是一種變長的 2 或 4 字節編碼模式。對於 BMP 內的字符使用 2 字節編碼,其它的則使用 4 字節組成所謂的代理對來編碼。java

public static String unicode2Chinese(String str){
		str = str.replace("\\","");
		String[] arr = str.split("u");
		String text = "";
		for(int i = 1; i < arr.length; i++){
		    int hexVal = Integer.parseInt(arr[i], 16);
		    text += (char)hexVal;
		}
		System.out.println(text);
		return text;
	}
public String ChineseToUnicode(String s) {
		String s1 = "";
		for (int i = 0; i < s.length(); i++) {
			s1 = s1 + "\\u" + Integer.toHexString(s.charAt(i) & 0xffff);
		}
		System.out.println(s1);
		return s1;
	}
StringEscapeUtils.unescapeJava(str)
/**
	 * byte數組轉十六進制字符串
	 * 
	 * @param b
	 * @return
	 */
	public static String byte2hex(byte[] b) {
		String hs = "";
		String stmp = "";

		for (int n = 0; n < b.length; n++) {
			stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
			if (stmp.length() == 1)
				hs = hs + "0" + stmp;
			else
				hs = hs + stmp;
			System.out.print(stmp + " ");
		}
		// System.out.println(hs.toUpperCase());
		return hs.toUpperCase();
	}
private final static char[] hexArray = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {
    char[] hexChars = new char[bytes.length * 2];
    for ( int j = 0; j < bytes.length; j++ ) {
        int v = bytes[j] & 0xFF;
        hexChars[j * 2] = hexArray[v >>> 4];
        hexChars[j * 2 + 1] = hexArray[v & 0x0F];
    }
    return new String(hexChars);
}
相關文章
相關標籤/搜索