for (int i = 0; i < unicodeStr.length(); i++) { char char1 = unicodeStr.charAt(i); if (char1 == '\' && isUnicode(unicodeStr, i)) { String cStr = unicodeStr.substring(i + 2, i + 6); int cInt = Integer.parseInt(cStr,16); buf.append((char) cInt); // 跨过当前unicode码,因为还有i++,所以这里i加5,而不是6 i = i + 5; } else { buf.append(char1); } } return buf.toString(); }
// 判断以index从i开始的串,是不是unicode码 privatestaticbooleanisUnicode(String unicodeStr, int i){ int len = unicodeStr.length(); int remain = len - i; // unicode码,反斜杠后还有5个字符 uxxxx if (remain < 5) returnfalse;
近期评论