unicode轉碼工具類

gamebus發表於2021-09-09
	public static String decodeUnicode(String str) {		Charset set = Charset.forName("UTF-16");		Pattern p = Pattern.compile("\\u([0-9a-fA-F]{4})");		Matcher m = p.matcher(str);		int start = 0;		int start2 = 0;		StringBuffer sb = new StringBuffer();		while (m.find(start)) {			start2 = m.start();			if (start2 > start) {				String seg = str.substring(start, start2);				sb.append(seg);			}			String code = m.group(1);			int i = Integer.valueOf(code, 16);			byte[] bb = new byte[4];			bb[0] = (byte) ((i >> 8) & 0xFF);			bb[1] = (byte) (i & 0xFF);			ByteBuffer b = ByteBuffer.wrap(bb);			sb.append(String.valueOf(set.decode(b)).trim());			start = m.end();		}		start2 = str.length();		if (start2 > start) {			String seg = str.substring(start, start2);			sb.append(seg);		}		return sb.toString();	}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4687/viewspace-2803029/,如需轉載,請註明出處,否則將追究法律責任。

相關文章