8

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

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

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

PS:这是泰米尔语。

4

2 回答 2

7

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

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

String str = "கா";
for(char ch : str.toCharArray())
   System.out.format("\\u%04x", (int) ch);
于 2013-05-18T18:40:19.403 回答
6

根据这个你必须尝试

System.out.println( "\\u" + Integer.toHexString('க' | 0x10000).substring(1) );

但它只适用于最高 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));

产生

\u0b95
\u0bbe

如果要将它们放在一行中,请更改System.out.println()System.out.print()System.out.print("\n")在最后添加。

于 2013-05-18T15:28:06.290 回答