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);
}
相关文章
相关标签/搜索