Nic*_*ick 14 java character-encoding
如何在Java中获取char的UTF8代码?我有char'a',我想要值97我有char'é',我想要值233
这是一个更多值的表
我试过Character.getNumericValue(a)但是它给了我10而不是97,任何想法为什么?
这似乎非常基本,但任何帮助将不胜感激!
Mic*_*rdt 11
char实际上是一个数字类型,包含unicode值(UTF-16,确切地说 - 你需要两个 char s表示BMP之外的字符).你可以用它做任何事情int.
Character.getNumericValue() 试图将字符解释为数字.
Kai*_*tsu 10
您可以使用java.lang.String的codePointAt(int index)方法.这是一个例子:
"a".codePointAt(0) --> 97
"é".codePointAt(0) --> 233
Run Code Online (Sandbox Code Playgroud)
如果您想避免不必要地创建字符串,以下工作也可以用于char数组:
Character.codePointAt(new char[] {'a'},0)
Run Code Online (Sandbox Code Playgroud)
那些"UTF-8"代码不是这样的.根据Unicode代码图表,它们实际上只是Unicode值.
因此'é'实际上是U + 00E9 - 在UTF-8中它将由两个字节{0xc3,0xa9}表示.
现在要获取Unicode值 - 或者更准确地说是UTF-16值,就像Java在内部使用的那样 - 您只需要将值转换为整数:
char c = '\u00e9'; // c is now e-acute
int i = c; // i is now 233
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75788 次 |
| 最近记录: |