java kml不读希腊字符

时间:2014-05-12 07:36:23

标签: java kml

我想问一下我将在下面显示的问题的解决方案。 我读了一个带有kml.unmarshal的希腊字符的kml文件,我收到了这些字符Ξ“Ξ-ΠΠΣΙΠΙΧΩ<™

    final Kml kml = Kml.unmarshal(new File("something.kml"));
    final de.micromata.opengis.kml.v_2_2_0.Document document = (de.micromata.opengis.kml.v_2_2_0.Document) kml.getFeature();
    List<Feature> t = document.getFeature();
    for (Object o : t) {
        PointOfInterest poi = new PointOfInterest();

        Folder f = (Folder) o;
        List<Feature> tg = f.getFeature();
        for (Object ftg : tg) {

            Placemark g = (Placemark) ftg;
            ExtendedData extdat = g.getExtendedData();
            List<SchemaData> list = extdat.getSchemaData();
            List<SimpleData> list2 = list.get(0).getSimpleData();
            for (int i = 0; i < list2.size(); i++) {
                SimpleData dat = list2.get(i);
                //  System.out.println(dat.getName() + "  -  " + dat.getValue());
                if (dat.getName().equals("newcat"))
                   if (dat.getValue().equalsIgnoreCase("Ελληνικοι χαρακτηρες"){...}}}

代码不是我的,我试图找出为什么dat.getvalue具有以下内容Ξ“Ξ-ΠΠΣΙΠΙΧΩwhen™当它有希腊字符。

修改

我尝试使用

最终Kml kml = Kml.unmarshal(新FileInputStream(新文件(“something.kml”)),“UTF8”))

我收到以下错误。想知道为什么?

没有为unmarshal找到合适的方法(FileInputStream,String)     方法Kml.unmarshal(InputStream)不适用       (实际和正式的参数列表长度不同)     方法Kml.unmarshal(String)不适用       (实际和正式的参数列表长度不同)     方法Kml.unmarshal(File)不适用       (实际和正式的参数列表长度不同)     方法Kml.unmarshal(File,boolean)不适用       (实际参数FileInputStream无法通过方法调用转换转换为File)

未报告的异常FileNotFoundException;必须被抓住或宣布被抛出

';'预期

1 个答案:

答案 0 :(得分:0)

在页面上: http://labs.micromata.de/projects/jak/quickstart.html 您可能还会在xml中看到指定的编码:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

他们在使用时:

final Kml kml = Kml.unmarshal(new File("HelloKml.kml"));

情况确实如此。