从.csv文件中解析的字符串是kml文件中的无效标记。我该如何解决?

汉斯

我有一个代码,可解析CSV文件(带有Twitter数据)中的字符串,并将其提供给新的KML文件。当我解析来自Twitter数据的注释时,当然会有未知的标记,例如:🚨。当我在Google Earth中打开新的KML文件时,由于此未知令牌而收到错误消息。问题:当我解析字符串时,我可以告诉Java它应该丢弃字符串中的所有未知标记,以便我的KML中没有任何未知标记吗?

谢谢

代码如下:

String csvFile = "twitter.csv";
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ";";
    String[] twitter = null;
    int row_desired = 0;
    int row_counter = 0;
    String[] placemarks = new String[1165];
    // ab hier einlesen der CSV
    try {

        br = new BufferedReader(new FileReader(csvFile));
        while ((line = br.readLine()) != null) {
            if (row_counter++ == row_desired) {
                twitter = line.split(cvsSplitBy);
                placemarks[row_counter] = 
                        "<Placemark>\n"+
                        "<name>User ID: "+twitter[7]+"</name>\n"+
                        "<description>This User wrote: "+twitter[5]+" at the: "+twitter[6]+"</description>\n"+
                        "<Point>\n"+
                        "<coordinates>"+twitter[1]+","+twitter[2]+"</coordinates>\n"+
                        "</Point>\n"+
                        "</Placemark>\n";
                row_desired++;
            }

        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    for(int i = 2; i <= 1164;i++){

    String kml2 = kml.concat(""+placemarks[i]+"");
    kml=kml2;
    }
    kml = kml.concat("</Document></kml>");

    FileWriter fileWriter = new FileWriter(filepath);
    fileWriter.write(kml);
    fileWriter.close();

    Runtime.getRuntime().exec(googlefilepath + filepath);

}
卢克·厄舍伍德

文本文件的生成方式并不完全相同:您必须始终考虑所使用的字符编码。我不确定具体是Twitter的数据,但我想他们的行为与世界其他地区一样,并使用UTF-8。

基本上,避免FileReader使用取而代之的是使用构造函数InputStreamReader可以指定字符集。

提示:如果您使用的是Java 7+,请尝试以下操作:

for (String line : Files.readAllLines(file.toPath(), Charset.forName("UTF-8"))) { ...

更多信息

FileReader状态的Javadoc “此类的构造函数假定默认字符编码”

您应该始终避免此类。或至少对于计算机之间可能传输的任何数据。即使是在Windows上“使用默认字符集”运行的程序,从Eclipse内部运行时也将采用UTF-8,而从Eclipse外运行时则将采用ISO_8859_1!这种来自阶级的不确定性是不好的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我该如何解析JS中的字符串,这是Google位置API的结果?

如何解决Logstash中CSV文件的解析错误

我如何解析javascript中的json字符串

我该如何解决无法在Nuxt中对函数错误进行字符串化处理?

如果我要解析的列在 Python 中的 CSV 文件的中间,如何解析 CSV 文件?

在Pandas中解析csv文件时,如何从字符串中删除多余的空格?

当并非所有字符串都可转换时,如何从 CSV 文件中解析信息

我该如何解决无法在此文件中预览?

为什么此代码有“内联文件中的EOF”错误,我该如何解决?

尝试从文本文件中删除行时出现异常。我该如何解决?

解析sh文件中的字符串

如何解析文本文件中的字符串模式并计算唯一条目?

缓存的Spark RDD(从序列文件读取)具有无效的条目,我该如何解决?

如何解析字符串中的字符?

如何解析单引号字符串中的字符?

在我的代码中输入一个需要int的字符串,并且出现Java错误,该如何解决呢?

我如何解决 TinyButStrong 中的“未初始化的字符串偏移:”错误

Python如何解决字符串中的Unicode错误

如何解决Python中的字符串整数问题

如何解决字符串中的问号

如何使用 PowerShell 在我的 csv 文件中添加字符串並創建新列

如何使用标记字符串从csv文件检索行

ng-view html显示为纯字符串。我该如何解决?

SQL Where子句参数比字符串文字快。我该如何解决?

的ArrayList <字符串>总是产生一个char [],而不是字符串。我该如何解决呢?

我如何解析以浮动数据框中特定列的字符串数据值?

如何在多个文件中搜索特定字符串,并返回包含该字符串的所有文件的名称?

如何解析 Racket 中的日期字符串?

如何解析非英语字符串中的月份