2017-10-13 8 views
0

私はJtableを中国語の文字で持っていますが、Array Listにデータを取り込もうとしていますが、???????と表示されています。Eclipseコンソールで表示してもOKですが、htmlファイルで表示しています。トリッキー。そこに、データの読み出しと、1つのHTMLファイルにそのデータを書き込むことがJTableデータを中国語のような特殊文字を持つArrayListに読み込む方法は?

package test.java; 
import javax.swing.*;  
public class TableExample 
{  
    JFrame f; 
    JTable jt ; 
    public JTable m1() 
    {  
     f=new JFrame();  
     String data[][]={ {"100","你叫什么名字? ","1234"},  
       {"111","プードル","4567"},  
       {"222","유모차","343124"}};  
     String column[]={"ID","NAME","SALARY"};  
     jt=new JTable(data,column);  
     jt.setBounds(30,40,200,300);   
     JScrollPane sp=new JScrollPane(jt);  
     f.add(sp);   
     f.setSize(300,400);  
     f.setVisible(true); 
     return jt; 
    } 
} 

、第2のプログラム私は

package test.java; 
import java.util.ArrayList; 
import java.io.FileWriter; 
import java.io.IOException; 

import javax.swing.JTable; 
public class TableClass { 
    public static void main(String[] args) 
    { 
     ArrayList<String> numdata = new ArrayList<String>();  
     TableExample mainTable = new TableExample(); 
     JTable table = mainTable.m1(); 
     for (int count = 0; count < table.getRowCount(); count++) 
     { 
      numdata.add(table.getValueAt(count, 1).toString()); 
     } 

     FileWriter writer = null; 
     try 
     { 
      writer = new FileWriter("D:/Testing.html"); 
     } catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
     for(String str: numdata) 
     { 
      try 
      { 
       writer.write(str); 
      } catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
     try { 
      writer.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+2

これは、テキストのレンダリングに使用されるフォントの問題である可能性が最も高いです。 – MadProgrammer

+0

コードを実行するとき、 'ArrayList numdata'を' CharSequence'にキャストできないという例外があります。これは実際のコードですか? – cello

+0

'System.out.println'行を' for(Object o:numdata){System.out.println( "TableClass.main()" + o)のようなループに変更します。 } '私の正しい文字を表示します。だからあなたのコンソールで使用されるフォントの問題か、コンソールの文字エンコーディングです。 – cello

答えて

0

私の特別な文字を見ることができませんあなたのソースコードがUTF-8エンコーディングで保存されていると仮定すると、 htmlを書くときにも、このエンコーディングを指定する必要があります。現在のところ、適切なhtmlタグを使用せずに、htmlファイルに一連の文字を書き込むだけです。

私はあなたが以下のようにコードの一部を「HTMLへの書き込み」に適応しました:

try { 
    FileWriter writer = new FileWriter("testing.html"); 
    writer.write("<html><head><meta charset=\"UTF-8\"></head><body>"); 
    for(String str: numdata) { 
     writer.write("<p>" + str + "</p>"); 
    } 
    writer.write("</body></html>"); 
    writer.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

それは最初のコンテンツはUTF-8であることを指定meta -tagとの適切なHTMLヘッダを書き込みます。次に、各文字列を適切な段落(<p>...</p>)として書き出し、最後にhtmlを正しく閉じます。

+0

まだHTMLファイルに特殊文字(中国語)が表示されず、FYI:ソースコードをUTF-8形式で保存しました。 – srinivas

関連する問題