`
jsjxqjy
  • 浏览: 118259 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

页面转码 及unterminated string constant

阅读更多

unterminated string constant 错误:主要原因是 由于在给JS 方法传递参数的时候,参数中包含 空格 ,就会把这个方法后面的 括号部分给丢失掉 。

例如:

function viewDetail(val1,val2) {};

 

 

使用的时候  oncklick = "viewDetail(val1,val2) ;"    传递有空格的参数会变成 -->  给val1 = 'a  bc' ;

 

viewDetail('a    ,这个问题经过仔细想了下,其实是 浏览器做的处理,对于 获取页面 包含空格的 HTML代码的时候,会把页面的字符 编码 再传递给JS ,  空格,在编码后,会变成乱码,导致JS编译不了,无法执行!

 

针对于上面的问题:我是这样解决的----> 隐藏域 提交表单

 

(由于我的页面都是ajax进行局部更新的 ,除了可以添加参数,还可以 进行表单提交数据。)

 

我 具体是把这个包含 空格的字段 没有作为js 参数 ,而是 赋值给一个隐藏域 去做的

 

<input type=hidden />

 

 

这样处理的优点是: 1。 不需要考虑中文乱码问题,前提是 你的页面已经做了编码的设置

                             2。 不需要转码,解码-->这个如果你不是太熟悉的话  不要弄!

 

 

---------------------------------------------------------------------------->

页面转码

 

可以参考下面的超链

http://www.pqshow.com/design/Javascript/200909/10463.html

 

http://www.gzu521.com/campus/article/design/200606/16579.htm

 

-------------------下面是截取 其中的方法------------------------------------>

 

方法一 : 创建div对象 ,让页面自己去编码解码

 

function HTMLEncode(html)
{
	var temp = document.createElement ("div");
	(temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);
	var output = temp.innerHTML;
	temp = null;
	return output;
}

function HTMLDecode(text)
{
	var temp = document.createElement("div");
	temp.innerHTML = text;
	var output = temp.innerText || temp.textContent;
	temp = null;
	return output;
}

 

用途:就是当你需要把页面的一些 包含了特殊符号的 HTML , 获取并传递到其他页面显示的时候,可以这样使用

 

方法二 : 这个是 通过js 替换 特殊符号,变为HTML的 一种编码方法

 

 

function HTMLEncode2(str)
		    {   
		         var s = "";
                 if(str.length == 0) return "";
                 s    =    str.replace(/&/g,"&amp;");
		         s    =    s.replace(/</g,"&lt;");
		         s    =    s.replace(/>/g,"&gt;");
		         s    =    s.replace(/ /g,"&nbsp;");
		         s    =    s.replace(/\'/g,"&#39;");
		         s    =    s.replace(/\"/g,"&quot;"); 
        		 return   s;   

		   }   
		  function HTMLDecode2(str)
		  {   
		        var s = "";
		        if(str.length == 0)   return "";
		        s = str.replace(/&amp;/g,"&");
		        s = s.replace(/&lt;/g,"<");
		        s = s.replace(/&gt;/g,">");
		        s = s.replace(/&nbsp;/g," ");
		        s = s.replace(/&#39;/g,"\'");
		        s = s.replace(/&quot;/g,"\"");
		        return   s;   
		  }

 

 上面这种方法,对于页面的字符,不是乱码的时候的情况可以使用,当出现乱码的时候(你表面上是看不出来有乱码的)

可以使用 。

 

 

方法三 、后台的数据编码 :

 

就是 用java代码 对于特殊的字符串 进行一个特换转码的方法:

 

/**
	 * 转换成HTML中可以对value赋值的字符串,用于对form中的元素赋值
	 * 
	 * @param src
	 * @return
	 */
	public static String escapeFormValue(String src) {
		if (src == null) {
			return null;
		}
		src = src.replaceAll("/br","");

		int len = src.length();
		StringBuffer sbResult = new StringBuffer(len);
		char ch;

		try {
			for (int i = 0; i < len; i++) {
				ch = src.charAt(i);
				switch (ch) {
				case '\"':
					sbResult.append("&quot;");
					break;
				case '\'':
					sbResult.append("");
					break;
				case '&':
					sbResult.append("&amp;");
					break;
				case '>':
					sbResult.append("&gt;");
					break;
				case '<':
					sbResult.append("&lt;");
					break;
				case '\n':
					sbResult.append("");//&#13;
					break;
				case '\r':
					sbResult.append("");//&#10;
					break;
				default:
					sbResult.append(ch);
					break;
				}
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return sbResult.toString();
	}

 

 

 

 把 作为页面需要显示的字符 变为 &开头的 代码 :

只有"<" 字符和"&"字符对于xml来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。

 

 

 &amp; 或 &             &         和
&lt; 或<                   <          小于号
&gt; 或>                  >         大于号
&quot;                    "             双引号
&nbsp;                                 空格
&copy;                   ©            版权符
&reg                      ®             注册符

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    mysql输出数据赋给js变量报unterminated string literal错误原因

    在JavaScript中,"unterminated string literal"错误通常发生在字符串字面量没有被正确关闭的情况下。这意味着你的字符串在结束引号之前遇到了未预期的字符,导致JavaScript解析器无法确定字符串的结束位置。在这种...

    Steema TeeChart Pro VCL FMX Source Code 2020.29_修正版.rar

    VCLTee.TeeConst.pas(612) Error: E2066 Missing operator or semicolon VCLTee.TeeConst.pas(612) Error: E2066 Missing operator or semicolon VCLTee.TeeConst.pas(612) Error: E2052 Unterminated string VCLTee...

    汇编语言实现简单加减乘除计算器

    在计算机科学领域,汇编语言是一种低级编程语言,它将机器指令以人类可读的形式表示。本项目“汇编语言实现简单加减乘除计算器”是利用汇编语言编写的一个命令行程序,无需图形用户界面,直接通过输入数字和运算符...

    json-syntax-error:这是一个小型中间件,可以解决您的快速应用程序中的语法错误

    &lt; pre&gt; SyntaxError: Unexpected string in JSON at position 53 &lt; br&gt; &nbsp; &nbsp;at JSON.parse (&lt;anonymous&gt;) &lt; br&gt; &nbsp; &nbsp;at parse (/home/touchcore/Desktop/TC/tc-back-office/node_modules/...

    使用VLC1.0.5进行RTSP2TS转码

    common.mak:28: *** unterminated call to function `foreach': missing `)'. Stop. 出现上面错误需要更新Make版本,使用make-3.81.tar.gz ./configure --prefix=/usr;make;make install In file included from ...

    Turbo C2[1].0常见错误信息列表

    10. **错误:#145 - Unterminated string constant** 你的字符串常量没有正确关闭,可能忘记了双引号。检查字符串,确保每个开始的双引号都有对应的结束双引号。 11. **错误:#149 - Type mismatch in ...

    struts2 标签库 帮助文档

    action:直接调用一个Action,根据executeResult参数,可以将Action的处理结果包含到页面中。 bean:创建一个JavaBean实例。。 date:格式化输出一个日期属性。 debug:生成一个调试链接,当单击该链接时,可以看到...

    读取文件中的带引号的(" ")中的字符串

    System.out.println("Unterminated quoted string: " + line.substring(startIndex)); break; // 如果没有找到结束引号,可能需要额外处理 } } line = line.substring(startIndex + 1); } } } ``` 这段代码...

    初学者在调试程序遇到的错误小结

    * 加入一个 list 页面,页面中需要一个连接,运行时显示错误 Unterminated 标签,解决方法是 href 中要将全部 spring:url 包含进去,之后加上结尾符号即可。 十、包的命名 * 建立一个装 Bean 文件的包,一个装 DAO...

    JSMin(javaScript文件压缩)

    fprintf(stderr, "Error: JSMIN unterminated string literal."); exit(1); } } } case 3: theB = next(); if (theB == '/' && (theA == '(' || theA == ',' || theA == '=' || theA == ':' || theA == '['...

    Java replaceAll()方法报错Illegal group reference的解决办法

    public static void main(String[] args) { String str = "123ABC456"; String re = "#7T$/#"; System.out.println(str.replaceAll("ABC", re)); } } ``` 这段代码会报错,因为`"#7T$/#"`中的`$`被解析为正则...

    C++出错提示英汉对照表

    Constant out of range in comparison -----------------在比较中常量超出范围 Conversion may lose significant digits -----------------转换时会丢失意义的数字 Conversion of near pointer not allowed ------...

    用于容器的 Foreach.Map:提供迭代映射项的可能性-matlab开发

    Matlab 提供地图/字典(键值存储数据类型)的功能。 迭代地图可能很麻烦,这就是 foreach 的步骤。 使用resultmap = foreach(map, fctH) 对地图的每个项目调用函数句柄 fctH。 结果存储在与原始映射具有相同键的...

    PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】

    这两种方法都可以帮助开发者构建XML结构,但实现方式略有不同。 1. **DOMDocument类**: ...这个类提供了对XML文档进行创建、修改和查询的能力。在上述示例中,我们首先创建一个DOMDocument对象,设置版本和编码格式。...

    AN-0903.pdf

    随着现代电子设备对数据传输速率及距离需求的不断提高,传输线的终端匹配成为了设计工程师必须重视的关键环节。不当的终端匹配可能导致信号反射、损耗增大以及整体系统性能下降。本文将深入探讨在差分信号通过双绞线...

    dp18_ap6330整理完工20170209_1129.7z

    out/target/product/tulip-d1/obj_arm/SHARED_LIBRARIES/libbt-vendor_intermediates/vnd_buildcfg.h:2:0: error: unterminated #ifndef #ifndef _VND_BUILDCFG_H ^ In file included from hardware/broadcom/...

    H9TQ32A4GTMCUR_Rev0.1.pdf

    - **接口**:采用HSUL_12 (High Speed Unterminated Logic 1.2V) 接口。 - **数据率架构**:支持命令、地址和数据总线的双倍数据率架构。 - 所有控制和地址信号(除了CS_n和CKE),在时钟的上升沿和下降沿被锁存。 ...

    差分驱动分析

    未端接源驱动(Unterminated Source) **图1** 描述了一个由平衡未端接源驱动的差分驱动器。这种情况下,通常适用于低阻抗源与驱动器之间的连接距离较短的情况。 **参数定义:** - _RS/2_:源阻抗的一半。 - _...

Global site tag (gtag.js) - Google Analytics