windows XP是否支持SWT Java程序中的unicode按钮文本?
我已经在SWT Java UI中包含了几个unicode箭头,并且刚刚注意到我的Windows XP机器没有呈现这些字符 XP: 7: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
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字符?是直接的还是某种转义序列?(比如说XX或XX;)@mchr:我没说你用了什么特别的字体。我刚才说,很明显,这种字体无法向您显示这些箭头,it操作系统需要用其他字体替换这些特定字符。这被称为字体回退机制,它似乎不能正常工作。您可能需要向注册表添加一些键。至于您的问题,您的应用程序支持Unicode,因为Java在内部使用UTF-16。我在W7(有效)和XP(无效)中尝试了箭头字符(\u21D3)。但若您尝试使用另一个字符,即unicode字符,但使用的是选定的字体(请检查字符映射应用程序),那个么它们工作得非常好。