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

如何在Java中将Telugu字符转换为UTF-8编码字符?,java,encoding,utf-8,Java,Encoding,Utf 8,我有这样的输入字符ఈ. 对于这个字符,我需要像这样的等效十六进制实体“0C08”。java中是否有用于此的内置函数 提前感谢。java中的字符以unicode保存。 因此,我们需要在从/到读/写时指定编码 外部字节流 注意:此代码应在UTF-8控制台上打印两行相同的内容: String value = columnDetails.getColumnName(); System.out.println(value); //output with default encoding System.ou

我有这样的输入字符ఈ. 对于这个字符,我需要像这样的等效十六进制实体“0C08”。java中是否有用于此的内置函数


提前感谢。

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
//未优化
字符串到十六进制(字节[]b){
字符串s=“”;

对于(int i=0;iJava字符串是UTF-16。要获得UTF-8,您可以编写如下代码:

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

这将获得UTF-8值。如果需要十六进制,请迭代字节并以十六进制打印。

您将在
CP850
编码中获得字节,然后您将创建一个新的
String
字符串,其中您确定字节是
UTF-8
。为什么要对
String
构造函数撒谎?为什么?您的代码应该是
String value=columnDetails.getColumnName();
。我想将给定的输入[它所采用的任何格式]转换为UTF-8编码格式。我尝试了该代码,但它不起作用。我的意思是ము 一个宪章,我需要等效的UTF-8字符。我做了很多研究,但我没有在java中获得任何内置函数。我所做的是用已知的等同于泰卢固语字符的Unicode创建一个类,然后形成单词。感谢所有人的帮助澄清(这并不影响OP的问题,因为所有Telegu字符都在BMP中):Java使用UTF-16(以前的UCS-2)Unicode字符编码,这就是为什么
char
基本数据类型为16位的原因。Java
String
可以表示所有Unicode代码点,但是
char
只能表示BMP中的一个(范围
\u0000
-
\uffff
)。
String string = "SomethingInTeluguOrwhatever";
byte[] utf8Bytes = string.getBytes(Charsets.forName("utf-8"));