System.out.println((int)'我');
輸出的數字就是10進制的unicode值,轉為16進制即可。
自己寫的轉換函數:
/**
* 返回16進制字符串
* @param k 待轉換的10進制整數
* @return 16進制字符串
* @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();
}
* 返回16進制字符串
* @param k 待轉換的10進制整數
* @return 16進制字符串
* @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 待轉換的字符
* @return 字符的unicode碼:/uXXXX
*/
public static String char2Unicode(char c) {
return "/u" + toHex(c, false);
}
* 返回字符的unicode碼字符串
* @param c 待轉換的字符
* @return 字符的unicode碼:/uXXXX
*/
public static String char2Unicode(char c) {
return "/u" + toHex(c, false);
}
/**
* 返回字符串的unicode碼字符串
* @param s 待轉換的字符串
* @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碼字符串
* @param s 待轉換的字符串
* @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聯盟的網站有一個到碼表的鏈接,列出了16位碼值。英語,法語,德語,葡萄牙語和西班牙語字符都在Basic Latin區,日語字符在Hiragana區,俄語字符在Cyrillic區,漢語字符在CJK Unified Ideographs 區。