论特殊字符处理 Sqlite3 数据库: 1、 单引号(‘)的处理方式 在构造sqlite数据库语句的时候,难免会碰到字符串中包含单引号的情况,例如:Insert into example_tb (name) values (‘John’s name’),该例子中的name列中的字符串就允许包含单引号,但是该sqlite数据库语句是无法正常执行的,因为单引号作为数据库语句中分割以及判定属性所用。那么如何解决这个问题呢,方法很简单,在字符串中应该为单引号的字符再加一个单引号即可。上面的例子就改成如下:Insert into example_tb (name) values (‘John’’s name’) 字符串转换XML: 环境: 保存:浏览器端将数据按照xml格式整理好,然后发给服务器,服务器将接受到的数据转换成xml文档,然后取出里面所记录的信息,将信息整理好打包发给后台,后台通过相应的指令传到服务器中,有服务器决定如何存储。 获取:将数据库中的数据取出,打包后发给后台,后台直接中转将数据传给服务器,服务器取出数据后通过xml格式将数据打包,然后发给浏览器,浏览器将数据包转换成xml文档格式,然后通过相应的方法取出数据。 问题: 在“保存”操作中,服务器所收到的数据有几个特殊字符无法按照字符串的形式转换,其一是小于符号(<),由于xml文档是通过一组”<>”区分,所有小于符号在这里会影响xml文档的转换。其二是And符号(&),该符号作为转义字符的起始符,如果单独存在,xml会将其作为空字符处理。 处理方式: 保存:在浏览器端接收到字符串数据的时候,通过replace函数将字符串中的小于符号(<)和And符号(&)转换成转义字符(<)和(&),然后才封装成xml文档发到服务器端。 获取:在服务器端获取在后台返回的数据以后,将字符串数据中的小于符号(<)和And符号(&)转换成转义字符(<)和(&),然后才封装成xml文档发到浏览器端。通过标签获取获取相应的数据。 A、 当该数据要通过构造html的方式写入界面的时候,该数据中所包含的特殊字符需要做特殊处理,将所有的单引号(‘)转换成”'”(因为单引号(‘)的转义字符”'”不是所有的浏览器都支持);将所有的小于符号(<)转换成”<”,将所有的And符号(&)转换成”&”由于html的特殊性,虽然双引号(”)对网络数据传输没有影响,但是对于页面显示影响还是很大的,所以将所有的双引号(“)转换成”"”。 B、 当该数据通过javascript或者JQuery或者其他方式采用赋值的方式给某个对象赋值就不需要将特殊字符做任何处理。 如何处理js构建html文本中函数所传参中所包含特殊字符的问题? 在js中构建好了html文本以后,通过JQuery函数”$(“#example”).html()”写入相应的位置,在构建html文本中,我们按照以上字符串转换XML中处理方式A所描述的那样转换。当html页面在加载js中所写入的html文本的时候,会将里面的特殊字符的转义符还原成原来的字符。但是在构建好的html文本中的函数所传输的变量如果是字符串是采用双引号(“)或者单引号的(‘)的方式包含起来,如果该字符串中包含有双引号(“)或者单引号的(‘),那么在调用该函数的时候就会发生无法预料的错误。比如读取的字符串不完整,比如该html标签提前结束等等。 解决该问题的方法是在A中的单引号转换成”'”,将双引号转换成”"”,然后在函数中做相应的处理。 本文来源:https://www.wddqw.com/doc/4b96ee51a16925c52cc58bd63186bceb19e8ed04.html