java和unicode
java中忘记了的基础知识:
在jvm中,java中的字符(char)保存的是对应字符的unicode码。
例如 ‘中’字 的unicode码是 20013,16进制是 \u4e2d,代码
public static void main(String[] args) { int c = '中'; System.out.println(c); System.out.println(Integer.toString(c, 16)); }
在java中转化字符串中的unicode字符的方法
# str中的字符包一般字符和unicode码,unicode码的格式为 错 及代码中if条件判断的内容
private static String decodeUnicode(String str){ StringBuilder sb = new StringBuilder(); for (int i=0;i<str.length();){ if(str.charAt(i)=='&' && '#'==str.charAt(i+1) && 'x' == str.charAt(i+2) && ';'==str.charAt(i+7)){ String a = "" + str.charAt(i + 3) + str.charAt(i + 4) + str.charAt(i + 5) + str.charAt(i + 6); sb.append((char)Integer.parseInt(a, 16)); i=i+8; } else { sb.append(str.charAt(i)); i++; } } return sb.toString(); }