在JTable中显示从服务器接收的字符串时出现问题。一些特定字符显示为小白色方块而不是“é”或“à”等。我尝试了很多东西,但没有一个能解决我的问题。我在Windows下使用Eclipse。服务器是使用Visual Studio 2010开发的。 服务器使用tinyXML2发送XML文件,客户端使用JDom来读取它。使用的字体是“Dialog”。服务器从Oracle数据库中获取字符串。
我认为这是一个编码问题,但我还没有解决它。
有没有人有想法?
THX
阿诺
编辑:根据要求,这就是我使用JDom的方式
public static Player fromXML(Element e)
{
Player result = new Player();
String e_text = null;
try
{
e_text = e.getChildText(XMLTags.XML_Player_playerId);
if (e_text != null) result.setID(Integer.parseInt(e_text));
e_text = e.getChildText(XMLTags.XML_Player_lastName);
if (e_text != null) result.setName(e_text);
e_text = e.getChildText(XMLTags.XML_Player_point_scored);
if (e_text != null) result.addSpecial(STAT_SCORED, Double.parseDouble(e_text));
e_text = e.getChildText(XMLTags.XML_Player_point_scored_last);
if (e_text != null) result.addSpecial(STAT_SCORED_LAST, Double.parseDouble(e_text));
}
catch (Exception ex) {
ex.printStackTrace();
}
return result;
}
public static Document load(String filename) {
File XMLFile = new File(CLIENT_TO_SERVER, filename);
SAXBuilder sxb = new SAXBuilder();
Document document = new Document();
try
{
document = sxb.build(new File(XMLFile.getPath()));
} catch(Exception e){e.printStackTrace();}
return document;
}
答案 0 :(得分:0)
使用正确的编码读取文件,例如:
document = sxb.build(new BufferedReader(new InputStreamReader(new FileInputStream(XMLFile.getPath()),“UTF8”)));
注意:1。首先确定该文件中使用的字符编码。指定charset而不是上面的UTF8。
Incase编码未知或者是从具有不同编码的各种系统生成的,您可以使用'Mozilla的编码检测器库'。 @see https://code.google.com/p/juniversalchardet/
需要处理UnsupportedEncodingException