将一串UTF代码点转换为其各自的值

时间:2012-08-13 16:39:30

标签: java encoding utf-8 character-encoding

我有以下字符串\ u5733。我需要将其转换为各自的UTF值。我试着用以下两种方式做到这一点,但我最终得到了“?”作为输出。 UTF代码点适用于中文字符。非常感谢。

char[] arr=Character.toChars(5733);
System.out.println(new String(arr));

String code = "5733";
char c = (char)Integer.parseInt(code, 16);
System.out.println("Code: " + code + " Character: " + c);

2 个答案:

答案 0 :(得分:1)

由于您的第二种方法对我有用,您的输出似乎有问题。

您的第一种方法虽然包含错误。由于5733是十六进制数,因此您应在其前面添加0x

char[] arr=Character.toChars(0x5733);

更简单的方法是:

char c = 0x5733;
System.out.println("Code: " + (int)c + " Character: " + c);

答案 1 :(得分:0)

如果您在Eclipse中运行它,则可以按如下方式显示UTF-8字符:

  • 点击运行配置...
  • 为此应用选择特定的运行配置
  • 点击Common-> Encoding-> Other
  • 选择UTF-8
  • 运行