在Java JTextArea中显示Unicode

我正尝试在JTextArea中打印unicode。 我已经将它打印到控制台上,但是当我尝试将它打印到textarea时,我得到了所有两个字节的unicode字符的框。 任何帮助将非常感激。

package edu.afit.jieddo; 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JTextAreaDemo extends JFrame {
   StringBuffer m = new StringBuffer("u14c7 u14c4 u1557 u00d6");
   StringBuffer m2 =new StringBuffer(" means one.");
   String message = m.append(m2).toString();

   public JTextAreaDemo() {
      super("u14c7 u14c4 u1557 u00d6");
      java.awt.Font font = new java.awt.Font("Arial Unicode MS", java.awt.Font.PLAIN, 18);
      JTextArea textArea = new JTextArea(message);
      textArea.setFont(font);

      java.awt.Container container=this.getContentPane();
      container.add(textArea);
      System.out.println(textArea.getFont().getFamily());// testing output in the command line
   }

   public static void main(String[] args) { 
      JTextAreaDemo frame = new JTextAreaDemo();
      frame.setFont(new Font("Arial Unicode MS",Font.ITALIC,11));
      frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
      frame.pack();
      frame.setVisible(true);
     System.out.println("u14c7 u14c4 u1557 u00d6");
      System.out.println(frame.getFont().getFamily());//testing output in the command line
   }
}

在这些Unicode字符中,Arial Unicode MS仅提供U + 00d6。

尝试使用DejaVu Sans。

顺便说一句,FileFormat.info是Unicode字符的一个很好的资源。 只需将该URL中的XXXX替换为unicode编号即可:http://www.fileformat.info/info/unicode/char/XXXX/index.htm。 例如:http://www.fileformat.info/info/unicode/char/14C7/index.htm


在我的Ubuntu系统上,它可能从来没有听说过“Arial Unicode MS”,你的程序完好无损地执行。 我在标题栏和文本区域看到的前两个字符看起来像蜗牛,指向不同的方向。 或者像小写字母db躺在他们的背上。

除了大小的改变,我在删除setFont调用时看到了相同的字符。

因此,这是我的教育猜测,你正在使用的字体不包含这些字符。 呃,这些角色的字形。

Windows中有一个字体查看器工具,您可以查看字体中的所有字符。 蜗牛出现了吗?

链接地址: http://www.djcxy.com/p/46889.html

上一篇: Displaying Unicode in a Java JTextArea

下一篇: How to Download base64 content in safari