有時(shí)候需要輸出漢字的Unicode值,而且不是在property文件中,這樣就沒有現(xiàn)成的方法,其實(shí),
System.out.println((int)'我');
輸出的數(shù)字就是10進(jìn)制的unicode值,轉(zhuǎn)為16進(jìn)制即可。
自己寫的轉(zhuǎn)換函數(shù):
/**
* 返回16進(jìn)制字符串
* @param k 待轉(zhuǎn)換的10進(jìn)制整數(shù)
* @return 16進(jìn)制字符串
* @param headOrNo 是否加"0x"開頭,是則加,否則不加
*/
public static String toHex(int k, boolean headOrNo) {
StringBuffer sb = new StringBuffer("");
String flag = "0x";
if (k < 0) {
flag = "-0x";
k *= -1;
}
int t;
do {
t = k % 16;
if (t > 9) {
char c = 'A';
for (int i=0; i<t-10; i++,c++);
sb.insert(0,c);
} else {
sb.insert(0,t);
}
k /= 16;
} while(k > 0);
if (headOrNo) {
sb.insert(0,flag);
} else {
return sb.toString();
}
return sb.toString();
}
/**
* 返回字符的unicode碼字符串
* @param c 待轉(zhuǎn)換的字符
* @return 字符的unicode碼:/uXXXX
*/
public static String char2Unicode(char c) {
return "/u" + toHex(c, false);
}
/**
* 返回字符串的unicode碼字符串
* @param s 待轉(zhuǎn)換的字符串
* @return 字符串的unicode碼:/uXXXX/uXXXX

*/
public static String getUnicode2(String s) {
StringBuffer sb = new StringBuffer("");
char c[] = s.toCharArray();
for (int i=0; i<c.length; i++) {
sb.append(char2Unicode(c[i]));
}
return sb.toString();
}
Unicode聯(lián)盟的網(wǎng)站有一個(gè)到碼表的鏈接,列出了16位碼值。英語,法語,德語,葡萄牙語和西班牙語字符都在Basic Latin區(qū),日語字符在Hiragana區(qū),俄語字符在Cyrillic區(qū),漢語字符在CJK Unified Ideographs 區(qū)。
posted on 2007-12-05 11:50
cccp21 閱讀(985)
評論(0) 編輯 收藏