Java字符串Unicode值 [英] Java String Unicode Value
本文介绍了Java字符串Unicode值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何获取Java中字符串的unicode值?
How can I get the unicode value of a string in java?
例如,如果字符串为"Hi"我需要类似\ uXXXX \ uXXXX
For example if the string is "Hi" I need something like \uXXXX\uXXXX
推荐答案
某些Unicode字符跨越两个Java字符.引用 http://docs.oracle.com/javase/tutorial/i18n/text/unicode.html :
Some unicode characters span two Java chars. Quote from http://docs.oracle.com/javase/tutorial/i18n/text/unicode.html :
值在16位范围之外并且在0x10000到0x10FFFF范围内的字符被称为补充字符,并被定义为一对char值.
The characters with values that are outside of the 16-bit range, and within the range from 0x10000 to 0x10FFFF, are called supplementary characters and are defined as a pair of char values.
逃脱非ASCII的正确方法:
correct way to escape non-ascii:
private static String escapeNonAscii(String str) {
StringBuilder retStr = new StringBuilder();
for(int i=0; i<str.length(); i++) {
int cp = Character.codePointAt(str, i);
int charCount = Character.charCount(cp);
if (charCount > 1) {
i += charCount - 1; // 2.
if (i >= str.length()) {
throw new IllegalArgumentException("truncated unexpectedly");
}
}
if (cp < 128) {
retStr.appendCodePoint(cp);
} else {
retStr.append(String.format("\\u%x", cp));
}
}
return retStr.toString();
}
这篇关于Java字符串Unicode值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文