【问题标题】:Is it safe to use Unicode characters in Java GUI?在 Java GUI 中使用 Unicode 字符是否安全?
【发布时间】:2011-11-16 00:17:49
【问题描述】:

对于 Java GUI 中的 播放按钮,我目前使用标签设置为“▻”的按钮(在 Unicode 符号表中找到此符号)。据我了解,最好不要直接在源代码中使用此类符号,而是在此示例中使用像 \u25BB 这样的显式 unicode 表示,因为某些工具(编辑器,...)可能无法处理具有非-ASCII 内容(对吗?)。

假设编译的类包含正确的字符,在什么情况下 GUI 会在当前 PC 操作系统上显示预期的符号? Linux、Windows、Mac 应该都支持 UTF-16 吧?可用字体或字体设置是否会导致此方法出现问题?

(当然我可以添加一个图标,但是如果一个符号应该已经可用,为什么还要添加额外的资源......鉴于这是一个可移植的解决方案)

【问题讨论】:

    标签: java user-interface unicode fonts portability


    【解决方案1】:

    可用字体或字体设置是否会导致此方法出现问题?

    不幸的是,他们这样做了。当然,您可以在源代码中使用 unicode,但问题是目前unicode has 246,943 code points assigned 显然没有任何字体具有定义的字体的一小部分。当字形不可用时,您会得到正方形或其他一些奇怪的渲染。我曾遇到过相对简单的符号(例如 ³)在一台 Windows 计算机上渲染良好并在下一台几乎相同的计算机上显示为正方形的情况。各种语言和区域设置以及较小的版本更改都会影响这一点,因此它非常脆弱。

    AFAIK 几乎没有(如果有的话)保证始终可用的字符。 Java 的Font 类有一些方法,例如canDisplaycanDisplayUpTo,这对于在运行时检查这一点很有用。

    您可以捆绑一些具有您需要的特殊字符的优质 TrueType 字体,而不是使用图标,然后在您的应用程序中的任何地方使用该字体。

    【讨论】:

      【解决方案2】:

      大多数编辑器都支持 unicode,所以继续。

      看这个帖子:Eclipse French support

      如果您使用的是记事本等简单的编辑器,那么当您保存类型名称并在其下方选择 UTF 编码 (http://www.sevenforums.com/software/72727-how-make-notepad-save-txt-files-unicode.html)

      【讨论】:

        【解决方案3】:
        I currently use a button with the label set to ' ▻ ' 
        

        而不是我总是使用JButton(String text, Icon icon),而Icon不管是Font还是另一个Font,UTF-16还是Unicode

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-02-09
          • 1970-01-01
          • 2011-06-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-30
          相关资源
          最近更新 更多