java:UTF-32到UTF-16转换器
我正在尝试获取java转义码。java:UTF-32到UTF-16转换器,java,utf-8,utf-32,Java,Utf 8,Utf 32,我正在尝试获取java转义码。 示例:1F612==>\ud83d\ude12 我试过: String toConvert = "\ud83d\ude12"; String result = ""; for(int x=0;x<toConvert.length();x++){ int codePoint = Character.codePointAt(toConvert, x); String hexStr = Integer.toHexString(codePoint);
示例:
1F612
==>\ud83d\ude12
我试过:
String toConvert = "\ud83d\ude12";
String result = "";
for(int x=0;x<toConvert.length();x++){
int codePoint = Character.codePointAt(toConvert, x);
String hexStr = Integer.toHexString(codePoint);
hexStr = formatUTF(hexStr);
result += hexStr;
}
System.out.println(result);
注意:1F612
Hex=128530
Integer
请帮忙。也许这就澄清了一切
for (int i = 0; i < toConvert.length(); ) {
int codePoint = Character.codePointAt(toConvert, i);
i += Character.charCount(codePoint);
System.out.printf("[%d] cp: %x%n", i, codePoint);
}
for (int i = 0; i < toConvert.length(); ++i) {
char ch = toConvert.charAt(i);
System.out.printf("[%d] c: %x%n", i, (int)ch);
}
完全如上面所说。thanx。这就是我要找的。因此,我使用了错误的函数:P
run:
\u1f612\ude12
for (int i = 0; i < toConvert.length(); ) {
int codePoint = Character.codePointAt(toConvert, i);
i += Character.charCount(codePoint);
System.out.printf("[%d] cp: %x%n", i, codePoint);
}
for (int i = 0; i < toConvert.length(); ++i) {
char ch = toConvert.charAt(i);
System.out.printf("[%d] c: %x%n", i, (int)ch);
}
[2] cp: 1f612
[0] c: d83d
[1] c: de12