我已成功在Java中调用Unicode字符。但是,我不能称这个特定的行人象征...... http://www.fileformat.info/info/unicode/char/1f6b6/index.htm
我按照网站上的说明操作,但显示空白区块:
JOptionPane.showMessageDialog(null,"\uD83D\uDEB6");
我做错了什么?
答案 0 :(得分:1)
这是一个字体问题。正在使用的字体不包含字符的字形,因此渲染软件会显示像矩形的通用符号。
如果您按照问题中提到的页面上的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是一种免费字体。
答案 1 :(得分:0)
这不一定是你做错了(尽管你没有在上下文中给出代码示例)。
请记住,如果您还不知道,大多数计算机只安装了部分的unicode集。有很多有趣的人物在每台计算机上都无法使用。
有些是安全的 - 比如重音á等等 - 但不是全部。
通常,如果你发现计算机上没有安装一个,我会避免尝试将它安装到你的计算机上 - 如果你曾经计划在其他任何地方运行该Java程序(这就是Java的想法,对吧?) - 因为你的程序在没有它的任何其他计算机上都会失败。
很抱歉让我失望 - 当我发现在unicode中无效的酷事时,我也感到同样的失望。
http://smallbusiness.chron.com/unicode-symbols-not-display-java-39315.html