下面的代码为Unicode字符串提供了கா
sysout = new PrintStream(System.out, true, "UTF-8");
sysout.println("\u0B95\u0bbe");
通过输入கா,我可以将十六进制值设为 \ u0B95 和 \ u0bbe 吗?
PS:这是泰米尔语。
答案 0 :(得分:5)
根据this,你必须尝试
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")
。
答案 1 :(得分:5)
您可以使用format功能打印Java UTF-16字符串转义符。
例如,此代码将转义写入STDOUT:
String str = "கா";
for(char ch : str.toCharArray())
System.out.format("\\u%04x", (int) ch);