获取错误:在读取csv文件时使用missing ) after argument list,但当我在javascript中发出警报或将其分配给javascript中的任何变量时。
<script>
<%
String csv = "";
try {
BufferedReader reader = new BufferedReader(new FileReader("c:/Testing.csv"));
String text = "";
while ((text = reader.readLine()) != null) {
csv = csv + text;
}
}
catch(Exception e) {}
%>
alert("<%= csv %>");
var test = "<%= csv %>";
</script>输出:
姓名、党、省、年龄、性别 “莫拉尼,玛丽亚”,BlocQuebecois,魁北克,43岁,女性 "Sellah,Djaouida",NDP,魁北克,30岁,女性 “,Lise",NDP,魁北克,72岁,女性 “弗莱,海迪”,自由党,英国哥伦比亚大学,71岁,女性 "Turmel,Nycole",NDP,魁北克,70岁,女性 “快板,朱迪”,自由党,安大略省,68岁,女性 "Raynault,Francine",NDP,魁北克,67岁,女性 "Davidson,Patricia",保守党,安大略省,66岁,女性
错误:

页面呈现:

发布于 2014-07-15 07:39:51
您的代码最终将呈现如下所示
alert(some text,
some more text,
and more);
var test = some text,
some more text,
and more;对于没有用引号包装的文本来说,这是无效的。即使您用引号包装它,javascript也不支持多行字符串(除非在末尾转义)。
因此,您需要转义反斜杠,以便保留新行,然后在js字符串中进行解析。并将输出用引号包装。
//...
csv = csv + text +"\\n";
//...
alert("<%= csv %>");
var test = "<%= csv %>";由于csv文件还包含双引号,所以您可以执行以下两项操作之一
用单引号包装
alert('<%= csv %>');
var test = '<%= csv %>';但是csv文件中也可能包含单引号,并且会触发相同的错误,所以在输出csv文件之前,要做的另一件事就是先转义csv文件中的双引号。
<% csv.replace("\"","\\"");
alert("<%= csv %>");
var test = "<%= csv %>";https://stackoverflow.com/questions/24752111
复制相似问题