package org.fanhongtao.lang; public class UnicodeEncoder { /** * 将一个Unicode字符串转换成小写的Hex形式的字符串。<br> * 如:将"A"转换成"0041", "你"转换成"4f60" * * @param unicodeStr Unicode字符串 * @return 对应的Hex形式的字符串 */ public static String encode(String unicodeStr) { String fixSring[] = { "", "000", "00", "0" }; char inputChars[] = unicodeStr.toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < inputChars.length; i++) { char ch = inputChars[i]; int intValue = (int) ch; String charStr = Integer.toHexString(intValue); if (charStr.length() < 4) { sb.append(fixSring[charStr.length()]); } sb.append(charStr); } return sb.toString(); } /** * 将Hex形式的字符串转换成其对应的Unicode串 * * @param hexStr Hex形式的字符串 * @return 对应的Unicode字符串 */ public static String decode(String hexStr) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < hexStr.length(); i = i + 4) { String charStr = hexStr.substring(i, i + 4); int intValue = Integer.parseInt(charStr, 16); char ch = (char) intValue; sb.append(ch); } return sb.toString(); } }