Java将汉字转换\uxxx方式,java汉字转换uxxx,import java.
分享于 点击 15421 次 点评:225
Java将汉字转换\uxxx方式,java汉字转换uxxx,import java.
import java.util.regex.Matcher;import java.util.regex.Pattern;/** * String and Unicode convert each other. * @author yzh.lin * @since 2012-08-09 * */public class UnicodeConverter { private static final Pattern REG_UNICODE = Pattern.compile("[0-9A-Fa-f]{4}"); private static final Pattern EN_CODE = Pattern.compile("[A-Za-z]{4}"); public static String unicode2String(String str) { StringBuilder sb = new StringBuilder(); int len = str.length(); for (int i = 0; i < len; i++) { char c1 = str.charAt(i); if (c1 == '\\' && i < len - 1) { char c2 = str.charAt(++i); if (c2 == 'u' && i <= len - 5) { String tmp = str.substring(i + 1, i + 5); Matcher matcher = REG_UNICODE.matcher(tmp); if (matcher.find()) { sb.append((char) Integer.parseInt(tmp, 16)); i = i + 4; } else { sb.append(c1).append(c2); } } else { sb.append(c1).append(c2); } } else { sb.append(c1); } } return sb.toString(); } /** * Convert the whole String object. * @param str * @return */ public static String string2Unicode(String str) { StringBuilder sb=new StringBuilder(); for(int i=0;i<str.length();i++) { String tmpStr = Integer.toHexString(str.charAt(i)); if(tmpStr.length() < 4){ sb.append("\\u00"); }else{ sb.append("\\u"); } sb.append(tmpStr); } return sb.toString(); } /** * Just convert Chinese String * @param str * @return */ public static String chinese2Unicode(String str){ StringBuilder sb=new StringBuilder(); for(int i=0;i<str.length();i++) { String tmpStr = Integer.toHexString(str.charAt(i)); if(tmpStr.length() < 4){ sb.append(str.charAt(i)); }else{ sb.append("\\u"); sb.append(tmpStr); } } return sb.toString(); }}
用户点评