【问题标题】:How to mask HTML-Unicode in Java如何在 Java 中屏蔽 HTML-Unicode
【发布时间】:2012-01-14 05:13:14
【问题描述】:

当我需要 \u00df(这是一个"ß", fyi)...我试着把它放在像\u25BA 这样的十六进制中,但这会导致错误的符号。我错过了什么?

请贴出答案和方法!

提前致谢!

【问题讨论】:

  • 嗯,十六进制版本对我来说很好用:System.out.println("\u25C4 \u25BA");(左/右黑色箭头)您能否提供有关该问题的更多详细信息?
  • 您应该澄清您的需求:在 Java 中 \u25BA 等应该可以工作。你在哪里展示它?
  • +1+1 谢谢!你们说的对,我说的不够彻底。以后应该问的。我的错!

标签: java unicode symbols masking


【解决方案1】:

这个 Swing 代码对我有用:

public static void main(String[] args) {
    String labelText = "\u25C4 \u25BA";
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel = new JPanel();
    frame.add(panel);
    JLabel label = new JLabel();
    label.setText(labelText);
    panel.add(label);
    frame.pack();
    frame.setVisible(true);
}

你在做一些非常不同的事情吗?

您当然可以通过使用不支持该字符的字体来搞砸它。比如……

    JTextField field = new JTextField();
    field.setText(labelText);

    // this font has the symbol
    field.setFont(new Font("Courier New", Font.PLAIN, 12));
    panel.add(field);
    field = new JTextField();
    field.setText(labelText);

    // this font does not
    field.setFont(new Font("Microsoft Sans Serif", Font.PLAIN, 12));
    panel.add(field);
    panel.add(field);

【讨论】:

  • +1 谢谢!.. 我太傻了!我猜它是字体的东西。我在 Java 中使用 microsoft sans-serif 进行了尝试,但我用 HTML 对其进行了交叉检查......但我想我有些失败了。
【解决方案2】:

如果您的页面是 UTF-8:

response.setContentType("text/html; charset=UTF-8")

然后您可以将字符留在源中。 (您的 IDE/编辑器也必须设置为 UTF-8。)

【讨论】:

  • +1 您好,感谢您的回复,但不适用于我。它用于 Swing-GUI,我们不能按照惯例在普通键盘旁边使用字符,而且我听说我们的构建服务器(Bamboo)遇到了一些问题。
  • 乔普是正确的。您需要为源文件、编译器和输出设置 UTF-8。 Joop 展示了如何为网络服务器执行此操作,但控制台不同。编译器可以使用 -encoding 选项来完成。
  • 感谢您指出编码选项...但正如我所说,它既不是 Web 也不是控制台...它的 GUI。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-27
  • 2014-03-09
  • 2011-12-01
  • 1970-01-01
相关资源
最近更新 更多