我正在从事一个项目,该项目接收TSV文件,对其进行处理,然后输出响应。我和我的朋友使用Heroku和Spark将我们基于Java的程序转换为web应用程序。
目前,我们的web应用程序只能使用特定的。tsv文件,而其他文件则没有,我相信这是与的特定编码有关的某种问题。tsv文件。
我们的
预期输入文件
是一个。tsv文件由Google Sheets文档生成,但目前,我们的程序无法正确解析它。
然而
,如果我们将google工作表上的数据复制并粘贴到文本文件中,并将其另存为。tsv然后我们的程序能够成功地处理它。这很奇怪,因为两个文件都有相同的内容和文本格式,但其中一个文件不工作,而另一个文件工作。
这是单击按钮时调用的my sendData()JS函数:
function sendData() {
var fr = new FileReader();
fr.onload = function(event) {
var result = event.target.result;
$.post("/rides", result, function(result, error) {
result = result.replace(/\n/g, "<br>");
$(".result").html(result);
});
};
var rides = $("#rides");
var files = rides[0]['files'];
var file = files[0];
fr.readAsText(file, 'ASCII');
}
下面是它通过Java接收和读取请求的地方:
public static void main(String[] args)
{
port(getHerokuAssignedPort());
staticFileLocation("/public");
get("/ping", (req, res) -> "pong");
post("/rides", (req, res) -> {
System.out.println("parsing...");
final RawParticipants participants = parser.parseInitialRequest(req.body());
final AssignedRides result = orchestrator.orchestrateRides(participants);
System.out.println(participants);
return result.toString();
});
}
输出因不同而不同。tsv文件,但从Google Sheets下载的所有文件都无法正确解析。
要么我们的程序无法从Google Sheets读取文件中的任何内容,要么它可以读取一些行,但无法读取其他行。请记住,这些数据没有什么特别之处。只有由制表符分隔的纯文本。
我研究了谷歌表单如何对其进行编码。tsv文件,它似乎没有任何特殊之处,只是ASCII编码,这与相同。通过复制/粘贴创建的tsv文件。所以我只是有点困惑如何解决这个问题,尤其是当我可以输入a时。tsv文件具有相同的确切信息,只是生成的信息不同,并让我的程序成功读取它。
有人知道为什么它不能处理某些信息吗。tsv文件以及解决方案是什么?谢谢如果需要,我非常愿意提供更多信息。