如何将Telugu字符转换为Java中的UTF-8编码字符?

时间:2016-05-30 13:05:56

标签: java encoding utf-8

我输入了这样的字符ఈ。对于这个角色,我需要等效的Hex实体" 0C08"像这样。在java中是否有任何内置函数?

提前致谢。

2 个答案:

答案 0 :(得分:2)

java中的字符保存在unicode中。 所以我们需要在读/写时指定编码 外部字节流。

请注意,此代码应在UTF-8控制台上打印两行相同的行:

String value = columnDetails.getColumnName();
System.out.println(value); //output with default encoding
System.out.write(value.getBytes("UTF-8"));//output with UTF-8

编辑: 如果你想要UTF-8编码的十六进制表示,那么试试这个:

//not optimized
String toHex(byte[] b) {
  String s="";
  for (int i=0; i<b.length; ++i) s+=String.format("%02X",b[i]&0xff);
  return s;
}
System.out.println(toHex("ఈ".getBytes("UTF-8"))); //prints E0B088

Edit2:或者如果你想要Unicode(双字节表示)

static String toHex(String b) {
String s="";
for (int i=0; i<b.length(); ++i) s+=String.format("%04X",b.charAt(i)&0xffff);
    return s;
}
System.out.println(toHex("ఈ")); //prints 0C08

答案 1 :(得分:0)

Java字符串是UTF-16。要获得UTF-8,您可以编写如下内容:

String string = "SomethingInTeluguOrwhatever";
byte[] utf8Bytes = string.getBytes(Charsets.forName("utf-8"));

这可以获得UTF-8值。如果你想要十六进制,迭代字节并用十六进制打印。