如何在Java中获取unicode字符的十进制值?

我需要一种编程方式来获取String中每个字符的十进制值,以便我可以将它们编码为HTML实体,例如:

UTF-8:

著者名 

十进制:

 著者名 

我怀疑你只是对从charint的转换感兴趣,这是隐含的:

 for (int i = 0; i < text.length(); i++) { char c = text.charAt(i); int value = c; System.out.println(value); } 

编辑:如果你想处理代理对,你可以使用类似的东西:

 for (int i = 0; i < text.length(); i++) { int codePoint = text.codePointAt(i); // Skip over the second char in a surrogate pair if (codePoint > 0xffff) { i++; } System.out.println(codePoint); } 

好了看完Jon的post,仍然沉思着Java的代理人,我决定不那么懒,并谷歌了。 在Character类中实际上支持代理,它只是有点…回旋

所以这里是正确的代码,假设有效的输入:

  for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if (Character.isHighSurrogate(ch)) { System.out.println("Codepoint: " + Character.toCodePoint(ch, str.charAt(i + 1))); i++; } System.out.println("Codepoint: " + (int)ch); }