Java Unicode到十六进制字符串

use*_*248 8 java unicode printstream

下面的代码给我Unicode字符串为கா

sysout = new PrintStream(System.out, true, "UTF-8");
sysout.println("\u0B95\u0bbe");
Run Code Online (Sandbox Code Playgroud)

通过给கா作为输入,我可以将十六进制值作为\ u0B95\ u0bbe吗?

PS:这是泰米尔语.

Mat*_*usz 6

根据这个你必须尝试

System.out.println( "\\u" + Integer.toHexString('?' | 0x10000).substring(1) );
Run Code Online (Sandbox Code Playgroud)

但它只适用于高达3.0的Unicode.如果你想获得更多的值,只需创建一个循环,例如

String foo = "??";
for (int i = 0; i < foo.length(); i++)
    System.out.println( "\\u" + Integer.toHexString(foo.charAt(i) | 0x10000).substring(1));
Run Code Online (Sandbox Code Playgroud)

哪个产生

\u0b95
\u0bbe
Run Code Online (Sandbox Code Playgroud)

如果你想有他们在一个行中,更改System.out.println()System.out.print()并添加System.out.print("\n")到底.


McD*_*ell 6

您可以使用格式功能来打印Java UTF-16字符串转义.

例如,此代码将转义写入STDOUT:

String str = "??";
for(char ch : str.toCharArray())
   System.out.format("\\u%04x", (int) ch);
Run Code Online (Sandbox Code Playgroud)