• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

mysql 特殊字符有关问题_mysql

mysql 搞代码 7年前 (2018-06-07) 130次浏览 已收录 0个评论

mysql 特殊字符问题

在一个字符串中,如果某个序列具有特殊的含义,每个序列以反斜线符号 (“/”)开头,称为转义字符。 MySQL 识别下列转义字符:

/0 
一个 ASCII 0 (NUL) 字符。 
/’ 
一个 ASCII 39 单引号 (“’”) 字符。 
/” 
一个 ASCII 34 双引号 (“””) 字符。 
/b 
一个 ASCII 8 退格符。 
/n 
一个 ASCII 10 换行符。 
/r 
一个 ASCII 13 回车符。 
/t 
一个 ASCII 9 制表符(TAB)。 
/z 
ASCII(26) (Control-Z)。这个字符可以处理在 Windows 系统中 ASCII(26) 代表一个文件的结束的问题。(当使用 mysql database < filename 时 ASCII(26) 可能会引起问题产生。) 
// 
一个 ASCII 92 反斜线 (“/”) 字符。 
/% 
一个 ASCII 37 “%” 字符。它用于在正文中搜索“%”的文字实例,否则这里“%”将解释为一个通配符。 
/_ 
一个 ASCII 95 “_” 字符。它用于在正文中搜索“_”的文字实例,否则这里“_”将解释为一个通配符。 
注意如果在某些正文环境内使用 “/%” 或 “/_”,将返回字符串 “/%” 和 “/_” 而不是 “%” 和 “_”。

字符串中包含引号的可以有下列几种写法:

一个字符串用单引号“’”来引用的,该字符串中的单引号“’”字符可以用“””方式转义。 
一个字符串用双引号“””来引用的,该字符串中的“””字符可以用“”””方式转义。 
你也可以继续使用在引号前加一个转义字符“/”来转义的方式。 
一个字符串用双引号“””来引用的,该字符串中的单引号“’”不需要特殊对待而且不必被重复或转义。同理,一个字符串用单引号“’”来引用的,该字符串中的双引号“””不需要特殊对待而且不必被重复或转义。 
下面显示的 SELECT 演示引号和转义是如何工作:

mysql> SELECT ‘hello’, ‘”hello”‘, ‘””hello””‘, ‘hel”lo’, ‘/’hello’;+——-+———+———–+——–+——–+| hello | “hello” | “”hello”” | hel’lo | ‘hello |+——-+———+———–+——–+——–+
mysql> SELECT “hello”, “‘hello'”, “”hello””, “hel””lo”, “/”hello”;+——-+———+———–+——–+——–+| hello | ‘hello’ | ”hello” | hel”lo | “hello |+——-+———+———–+——–+——–+
mysql> SELECT “This/nIs/nFour/nlines”;+——————–+| ThisIsFourlines |+——————–+
如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示:

NUL 
ASCII 0,你应该用 “/0”(一个反斜线和一个ASCII “0”字符)表示它。 

ASCII 92,反斜线。需要用 “//” 表示。 
‘ 
ASCII 39,单引号。需要用 “/’” 表示。 
” 
ASCII 34,双引号。需要用 “/”” 表示。 
 
你应该在任何可能包含上述特殊字符的字符串中使用转义函数!

另外,很多 MySQL API 提供了一些占位符处理能力,这允许你在查询语句中插入特殊标记,然后在执行查询时对它们绑定数据值。这样,API 会自动为你从数值中转换它们。

 

 

/***

* 将写入到ads中数据的特殊字符过滤掉

*/

public static String strFilter(String str) throws PatternSyntaxException {

if(StringUtils.isEmpty(str)){

return str;

}

return str.replaceAll(“////”, “”).replaceAll(“‘”, “”)

.replaceAll(“/0”, “”).replaceAll(“/'”, “”).replaceAll(“/””, “”)

.replaceAll(“/b”, “”).replaceAll(“/n”, “”)

.replaceAll(“//_”, “”).replaceAll(“//%”, “”)

.replaceAll(“/r”, “”).replaceAll(“/t”, “”)

.replaceAll(“//Z”, “”)

;

 

}

欢迎大家阅读《mysql 特殊字符有关问题_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:mysql 特殊字符有关问题_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址