关于“未结束的字符串常量”

简介:
   今天在做项目时,总出现“未结束的字符串常量”错误,害我折腾了半天。事情是这样的:我在Action设了个数据 request.setAttribute("sendOkMsg", sendOkMsg);,想要在JavaScript中显示出来 alert("<%=(String)request.getAttribute("sendOkMsg")%>"),结果总出现前面说的这个错误。更另人纳闷的是,我这样做 <%System.out.println((String)request.getAttribute("sendOkMsg"));%> ,居然能在控制台正常打印出信息!
      查阅了大量资料,终于真相大白,现列出来,和大家共享:
 
造成“未结束的字符串常量”错误的原因有好多种,下面列出三种:
1.JAVASCRIPT引用时,使用的字符语言不一致.
    比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xxx.js文件内部使用的是GB2312的格式,外面调用使用的是UTF-8,所以文件内部部分特殊字符因为格式不一致,出现乱码,造成此原因.

2.JAVASCRIPT输出HTML字符时,前后标记不匹配.
    这种比较常见,往往在输出字符串时,出现单引号(’)或双引号(”)不配对,或者是在document.write()的时候,没有正确输出单引号(’)或双引号(”)

3.参数内出现HTML标记语言或包含换行符
    我今天所遇到的是这种情况.因为我所得到的数据以参数形式传给一函数,结果该数据里包含换行符,造成了此错误.如:一般测试时只使用单行的数据,是正常的,未出现这个错误,.当测试时使用多行数据,并使用回车链换行,就出行了此错误.因为里面包含了换行符
 
     对于第3种情况,我的解决方法是:
法一: 不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可.
 
法二:传没有特殊符号的信息,到JS处解析拼组。


     本文转自NightWolves 51CTO博客,原文链接: http://blog.51cto.com/yangfei520/348278 ,如需转载请自行联系原作者
相关文章
|
1月前
|
C语言
深入理解字符串引用与操作
深入理解字符串引用与操作
14 0
|
1月前
|
C语言
字符串的引用
字符串的引用
18 0
|
1月前
|
存储 C语言 索引
字符串和字符串结束标志
在编程中,字符串是一种常用的数据类型,用于表示文本信息。字符串由一系列字符组成,这些字符可以是字母、数字、标点符号等。每个字符串都有一个结束标志,用于标识字符串的末尾。了解字符串和字符串结束标志的概念对于正确处理和操作字符串至关重要。
57 0
|
1月前
|
JavaScript 前端开发 Java
字符串的引用方式
字符串的引用方式
16 0
|
12月前
|
程序员 测试技术 C++
在 C++ 中标记字符串
标记字符串表示根据某些分隔符拆分字符串。有很多方法可以对字符串进行标记。在这篇文章中解释了其中的四个:
99 0
变量替换
变量替换
71 0
常量数组可以更改
常量数组可以更改
46 0
C代码:清理一行字串前后的无效字符
C代码:清理一行字串前后的无效字符
69 0
关于VS2017调试时,字符数组显示"字符串中的字符无效"问题
关于VS2017调试时,字符数组显示"字符串中的字符无效"问题
608 0
|
数据库连接 数据库 数据安全/隐私保护
对象变量或with块变量未设置————问题根源
对象变量或with块变量未设置————问题根源
1109 0
对象变量或with块变量未设置————问题根源

热门文章

最新文章