如何从jtextpane java获取unicode文本

时间:2014-05-30 03:26:37

标签: java html swing unicode jtextpane

我已将jtextpane内容类型设置为html并设置了

    ta_description = new JTextPane();
    ta_description.setContentType("text/html");
    ta_description.setFont(new Font("Latha", Font.PLAIN, 12));
    ta_description.setText("<![CDATA[<br>வேலூர் மாவட்டம், அணைக்கட்டு 
        தொகுதி பா.ம.க.வை சேர்ந்த கலையரசு எம்.எல்.ஏ. நேற்று முன்தினம் 
        காலை முதல்-அமைச்சர் ஜெயலலிதாவை சந்தித்து தனது தொகுதி 
        பிரச்சினைகள் குறித்து பேசினார். அதைத்தொடர்ந்து அவரை கட்சியில் 
        இருந்து நீக்குவதாக பா.ம.க. தலைவர் ஜி.கே.மணி அறிவித்தார்.<br>]]>);

当我使用ta_description.gettext()获取此文本时,它将如下所示

&LT;![CDATA并[d HTML&GT;   &LT; HEAD&GT;

&LT; /头&GT;   &LT;身体GT;     &LT峰; br&GT;     &安培;#2997;&安培;#3015;&安培;#2994;&安培;#3010;&安培;#2992;&安培;#3021; &amp;#2990;&amp;#3006;&amp;#2997;&amp;#2975;&amp;#3021;&amp;#2975;&amp;#2990;&amp;#3021;,&amp;#2949;&amp;#2979 ;&安培;#3016;&安培;#2965;&安培;#3021;&安培;#2965;&安培;#2975;&安培;#3021;&安培;#2975;&安培;#3009; &安培;#2980;&安培;#3018;&安培;#2965;&安培;#3009;&安培;#2980;&安培;#3007; &安培;#2986;&安培;#3006;。&安培;#2990;。&安培;#2965;。&安培;#2997;&安培;#3016; &安培;#2970;&安培;#3015;&安培;#2992;&安培;#3021;&安培;#2984;&安培;#3021;&安培;#2980; &安培;#2965;&安培;#2994;&安培;#3016;&安培;#2991;&安培;#2992;&安培;#2970;&安培;#3009; &安培;#2958;&安培;#2990;&安培;#3021;。&安培;#2958;&安培;#2994;&安培;#3021;。&安培;#2959 ;.     &安培;#2984;&安培;#3015;&安培;#2993;&安培;#3021;&安培;#2993;&安培;#3009; &安培;#2990;&安培;#3009;&安培;#2985;&安培;#3021;&安培;#2980;&安培;#3007;&安培;#2985;&安培;#2990;&安培;#3021; &安培;#2965;&安培;#3006;&安培;#2994;&安培;#3016; &安培;#2990;&安培;#3009;&安培;#2980;&安培;#2994;&安培;#3021; - &安培;#2949;&安培;#2990;&安培;#3016;&安培;#2970;&安培;#3021 ;&安培;#2970;&安培;#2992;&安培;#3021; &安培;#2972;&安培;#3014;&安培;#2991;&安培;#2994;&安培;#2994;&安培;#3007;&安培;#2980;&安培;#3006;&安培;#2997;&安培;#3016; &安培;#2970;&安培;#2984;&安培;#3021;&安培;#2980;&安培;#3007;&安培;#2980;&安培;#3021;&安培;#2980;&安培;#3009; &安培;#2980;&安培;#2985;&安培;#2980;&安培;#3009; &安培;#2980;&安培;#3018;&安培;#2965;&安培;#3009;&安培;#2980;&安培;#3007;     &安培;#2986;&安培;#3007;&安培;#2992;&安培;#2970;&安培;#3021;&安培;#2970;&安培;#3007;&安培;#2985;&安培;#3016;&安培;#2965; &放大器;#2995;&放大器;#3021; &安培;#2965;&安培;#3009;&安培;#2993;&安培;#3007;&安培;#2980;&安培;#3021;&安培;#2980;&安培;#3009; &安培;#2986;&安培;#3015;&安培;#2970;&安培;#3007;&安培;#2985;&安培;#3006;&安培;#2992;&安培;#3021 ;. &安培;#2949;&安培;#2980;&安培;#3016;&安培;#2980;&安培;#3021;&安培;#2980;&安培;#3018;&安培;#2975;&安培;#2992;&安培;#3021; &安培;#2984;&安培;#3021;&安培;#2980;&安培;#3009; &安培;#2949;&安培;#2997;&安培;#2992;&安培;#3016; &安培;#2965;&安培;#2975;&安培;#3021;&安培;#2970;&安培;#3007;&安培;#2991;&安培;#3007;&安培;#2994;&安培;#3021; &安培;#2951;&安培;#2992;&安培;#3009;&安培;#2984;&安培;#3021;&安培;#2980;&安培;#3009;     &安培;#2984;&安培;#3008;&安培;#2965;&安培;#3021;&安培;#2965;&安培;#3009;&安培;#2997;&安培;#2980;&安培;#3006;&安培;#2965; &安培;#2986;&安培;#3006;。&安培;#2990;。&安培;#2965 ;. &安培;#2980;&安培;#2994;&安培;#3016;&安培;#2997;&安培;#2992;&安培;#3021; &安培;#2972;&安培;#3007;。&安培;#2965;&安培;#3015;。&安培;#2990;&安培;#2979;&安培;#3007; &安培;#2949;&安培;#2993;&安培;#3007;&安培;#2997;&安培;#3007;&安培;#2980;&安培;#3021;&安培;#2980;&安培;#3006;&安培;#2992; &安培;#3021;。&LT峰; br&GT;   &LT; /体&GT; &LT; / HTML&GT; ]&GT;

我看到这是来自http://www.utf.ru/tables/tamil.html

的泰米尔语Unicode字符

我需要正确地获取文本,而且我不知道如何正确地获取文本。

1 个答案:

答案 0 :(得分:0)

Java使用系统中的字体,因此如果系统不包含特定字体,则可以使用Font.createFont()在应用程序中部署该字体。 所以如果你没有泰米尔语字体下载它here

您要做的第一件事就是获得支持Tamil unicode的字体。像这样的事情:

Font tamil =new Font("Latha", Font.BOLD,15);//I had a font Latha which supports tamil font

然后设置JTextPane的字体:

ta_description.setFont(tamil);

See how it looks in my system

完整代码:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.border.EmptyBorder;

public class Test extends JFrame {

    private JPanel contentPane;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Test frame = new Test();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Test() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JTextPane textPane = new JTextPane();
        contentPane.add(textPane, BorderLayout.CENTER);
        Font TamilFont=new Font("Latha", Font.BOLD,15);
        textPane.setFont(TamilFont);



    }

}