Отображение Unicode в Java JTextArea - PullRequest
8 голосов
/ 16 июля 2010

Я пытаюсь распечатать Unicode в JTextArea. Я получил его для печати нормально на консоль, но когда я пытаюсь распечатать его в текстовой области, я получаю коробки для всех двухбайтовых символов 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
   }
}

Ответы [ 2 ]

3 голосов
/ 16 июля 2010

Из этих символов Unicode Arial Unicode MS предоставляет только U + 00d6.

Попробуйте использовать DejaVu Sans .

Кстати, FileFormat.info - отличный ресурс для символов Юникода. Просто замените XXXX в этом URL на номер Unicode: http://www.fileformat.info/info/unicode/char/XXXX/index.htm. Например: http://www.fileformat.info/info/unicode/char/14C7/index.htm

1 голос
/ 16 июля 2010

В моей системе Ubuntu, которая, вероятно, никогда не слышала о «Arial Unicode MS», ваша программа выполняется без изменений, без сбоев.Первые два символа, которые я вижу как в строке заголовка, так и в текстовой области, выглядят как улитки, направленные в разные стороны.Или как строчные буквы d и b, лежащие на их спинах.

Помимо изменения размера, при удалении вызовов setFont я вижу те же символы.Я полагаю, что используемые вами шрифты не содержат этих символов.Err, глифы для этих символов.

В Windows есть утилита для просмотра шрифтов, в которой вы можете просмотреть все символы шрифта.Улитки появляются?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...