【问题标题】:Java not displaying a special UTF symbol?Java不显示特殊的UTF符号?
【发布时间】:2013-12-06 05:42:28
【问题描述】:

我已经成功地在 Java 中调用了 Unicode 字符。然而,我不能称这个特殊的行人符号...... http://www.fileformat.info/info/unicode/char/1f6b6/index.htm

我按照网站上的说明进行操作,但它显示一个空块:

JOptionPane.showMessageDialog(null,"\uD83D\uDEB6");

我做错了什么?

【问题讨论】:

标签: java unicode utf-8 symbols


【解决方案1】:

不一定是你做错了什么(尽管你没有给出上下文中的代码示例)。

请记住,如果您还不知道,大多数计算机只安装了一部分 unicode 集。有许多这样有趣的角色并不适用于每台计算机。

有些是安全的 - 例如重音 á 等 - 但不是全部。

一般来说,如果您发现一个没有安装在您的计算机上,我会避免尝试将它安装到您的计算机上 - 如果您计划让该 Java 程序在其他任何地方运行(这就是 Java 的想法,对?) - 因为如果没有它,您的程序在任何其他计算机上都会失败。

很抱歉让我失望 - 当我发现在 unicode 中不起作用的很酷的东西时,我也感到同样的失望。

http://smallbusiness.chron.com/unicode-symbols-not-display-java-39315.html

http://knowyourmeme.com/memes/this-is-bob

【讨论】:

    【解决方案2】:

    这是字体问题。所使用的字体不包含字符的字形,因此渲染软件会显示一个类似矩形的通用符号。

    如果您点击您在问题中提到的页面上的链接Fonts that support U+1F6B6,您将获得只有Symbola 包含字符PEDESTRIAN (U+1F6B6) 的信息。 (提到的 LastResort 字体是一种伪字体,在软件开发中很有用,但在渲染字符时没有用。)这应该不足为奇,因为它是 2010 年在 Unicode 6 中引入的。通常需要大约十年或更长时间在字体中得到相当好的支持的字符。

    足够新版本的 Segoe UI Symbol 也包含 U+1F6B6,但 Segoe UI Symbol 是专有的,随 Windows 7 和 Windows 8 一起提供,您可能需要对其进行更新以获得支持 U+1F6B6 的版本。另一方面,Symbola 是一种免费字体。

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 2018-07-18
      • 2021-08-25
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 2013-11-21
      • 2014-09-01
      • 1970-01-01
      相关资源
      最近更新 更多