Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
windows XP是否支持SWT Java程序中的unicode按钮文本?_Java_Windows_Unicode_Swt - Fatal编程技术网

windows XP是否支持SWT Java程序中的unicode按钮文本?

windows XP是否支持SWT Java程序中的unicode按钮文本?,java,windows,unicode,swt,Java,Windows,Unicode,Swt,我已经在SWT Java UI中包含了几个unicode箭头,并且刚刚注意到我的Windows XP机器没有呈现这些字符 XP: 7: Windows XP是否不支持unicode UI文本,或者我是否需要执行一些特殊操作以启用支持?这里的关键问题是默认的XP UI字体是Tahoma,它的字符集非常有限。这可以通过打开角色映射应用程序看到 当UI字体为Tahoma时,可以通过选择适当的字符来解决此问题。我选择了这些角色: private static final String UP = "\u2

我已经在SWT Java UI中包含了几个unicode箭头,并且刚刚注意到我的Windows XP机器没有呈现这些字符

XP

7


Windows XP是否不支持unicode UI文本,或者我是否需要执行一些特殊操作以启用支持?

这里的关键问题是默认的XP UI字体是Tahoma,它的字符集非常有限。这可以通过打开角色映射应用程序看到

当UI字体为Tahoma时,可以通过选择适当的字符来解决此问题。我选择了这些角色:

private static final String UP = "\u25B2";
private static final String DOWN = "\u25BC";
private static final String RIGHT = "\u25BA";

private static final String TAHOMA_UP = "\u06F8";
private static final String TAHOMA_DOWN = "\u06F7";
private static final String TAHOMA_RIGHT = "\u003E";
我检测到这一行代码要使用哪些联系人

boolean tahomaUIFont = composite.getFont().getFontData()[0].getName().equalsIgnoreCase("tahoma");

我认为这是字体的退步问题。您的系统字体可能没有这些标志符号,并且由于某种原因无法退回到具有这些标志符号的字体。好吧,我只是使用“Windows经典”主题中的普通Windows XP字体。我应该避免在UI元素中使用非ASCII字符,还是有一些是安全的?如何在代码中键入unicode字符?是直接的还是某种转义序列?(比如说&#XXX或&#XXX;)@mchr:我没说你用了什么特别的字体。我刚才说,很明显,这种字体无法向您显示这些箭头,it操作系统需要用其他字体替换这些特定字符。这被称为字体回退机制,它似乎不能正常工作。您可能需要向注册表添加一些键。至于您的问题,您的应用程序支持Unicode,因为Java在内部使用UTF-16。我在W7(有效)和XP(无效)中尝试了箭头字符(\u21D3)。但若您尝试使用另一个字符,即unicode字符,但使用的是选定的字体(请检查字符映射应用程序),那个么它们工作得非常好。