我有一个带有中文字符的Jtable,而我正在尝试将数据提取到数组列表中,它显示为???????,在eclipse控制台中显示它是好的,但在html文件中显示它是制作棘手。
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;
}
}
第二个程序读取数据并将数据写入一个HTML文件,在那里我无法看到我的特殊字符
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();
}
}
}
答案 0 :(得分:0)
假设您的源代码以UTF-8编码保存,您在编写html时也需要指定此编码。目前,你只是在html文件中写了一堆字符,没有任何正确的html标签。
我已经改编了你的&#34;写给html&#34;部分代码如下:
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();
}
它首先使用meta
- 标记写一个正确的html标头,指定内容是UTF-8。然后,它将每个字符串写为正确的段落(<p>...</p>
),最后再次正确关闭html。