【问题标题】:UTF-8 and charcters in Java and Eclipse IDEJava 和 Eclipse IDE 中的 UTF-8 和字符
【发布时间】:2013-04-18 07:03:58
【问题描述】:
 public static void main(String[] args) throws UnsupportedEncodingException {
    String str = "अ";
    byte[] bytes = str.getBytes("UTF-8");
    for (byte b : bytes) {
      System.out.print(b + "\t");
    }
    String hindi = new String(bytes, "UTF-8");
    System.out.println("\nHindi = " + hindi);
    System.out.println((int) 'अ');
  }

输出:

-32 -92 -123    
Hindi = अ
2309

我需要对这三个输出进行解释。尤其是最后一个。

另外,我从网页复制粘贴此字符。如何在 Eclipse IDE 中手动输入?例如,ALT + 65 会给出“A”,但 ALT + 2309 不会给出“अ”(我再次复制粘贴)。

【问题讨论】:

  • 在Windows下有一个附属的系统工具Character Map,您可以通过它浏览字符表,点击和复制字符串。 2309 是 Unicode 编号,在 Java(基数 16)中可写为 "\u0905"。 Char Map 也将 Unicode 值显示为工具提示。它们是 Unicode 字符,需要两个 16 位 Java 字符,因此您可能会选择 String 而不是 char。

标签: java eclipse utf-8 ascii


【解决方案1】:

上面提供的链接应该可以帮助您了解在每种情况下得到的输出。

【讨论】:

  • 我复制粘贴那个字符。现在我想自己用键盘输入
  • 如果要打印,可以简单:System.out.println("अ");
  • 我想在我的编辑器中自己输入那个字符。例如,ALT + 65 会给出“A”,但 ALT + 2309 不会给出“अ”(我再次复制粘贴)。
  • @Mawia you need to enable unicode from registry,重新启动,然后在按住ALT 的同时按+905,即在按住ALT 的同时按+、9、0、5。 +开头是必须的。并且代码点必须以十六进制输入,0-9 来自小键盘,a-f 来自普通键盘字母。 2309 是十六进制的 905。看我做:अअअ
  • @Mawia 它在这个评论文本区域中对我有用,也许从那开始。在 Eclipse 中也适用于我。确保您正确执行注册表设置并在此之后重新启动。类型为REG_SZ。这是我的HKEY_CURRENT_USER/Control Panel/Input Methodi.imgur.com/8dHpiVS.png 的截图。 REG_SZNew -> String Value
【解决方案2】:

理想情况下,您需要在任何 IDE 中的 Java 中键入字母的关联 unicode 数字“\uNNNN”。

对于单个字符,直接的方法是:

 char c = '\uNNNN';
System.out.println((int) c);

更新:梵文http://www.unicode.org/charts/PDF/U0900.pdf 的 Unicode 范围列表 要在记事本/IDE 等中输入印地语,请搜索将键盘键映射到特定印地语字母和相关语法标点的软件。

【讨论】:

  • NNNN 是补零的十六进制数。
猜你喜欢
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
  • 2014-03-12
  • 2011-02-26
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
相关资源
最近更新 更多