java 连接mysql时 怎么对特殊字符转译 例如某个字符 :灰\ 怎样对\ 进行转译
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 连接mysql时 怎么对特殊字符转译 例如某个字符 :灰\ 怎样对\ 进行转译相关的知识,希望对你有一定的参考价值。
mysql字符转义在字符串中,某些序列具有特殊含义。这些序列均用反斜线(‘\’)开始,即所谓的转义字符。MySQL识别下面的转义序列:
\0 ASCII 0(NUL)字符。
\' 单引号(‘'’)。
\" 双引号(‘"’)。
\b 退格符。
\n 换行符。
\r 回车符。
\t tab字符。
\Z ASCII 26(控制(Ctrl)-Z)。该字符可以编码为‘\Z’,以允许你解决在Windows中ASCII 26代表文件结尾这一问题。(如果你试图使用mysql db_name < file_name,ASCII 26会带来问题)。
\\ 反斜线(‘\’)字符。
\%‘%’字符。参见表后面的注解。
\_‘_’字符。参见表后面的注解。 参考技术A
没理解错的话,你的要求用MySql本身的功能就可以实现,使用转义符。
当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 % 的字符串,可以这么用,第二个%被重新定义为查找的关键字,而不再是通配符:
select * from user where name like "%/%%" escape "/"; 参考技术B 你可以查看转义字符表我把常用的给你列出来了
\f 换页(FF),将当前位置移到下页开头
\n 换行(LF) ,将当前位置移到下一行开头
\r 回车(CR) ,将当前位置移到本行开头
\t 水平制表(HT) (跳到下一个TAB位置)
\\ 代表一个反斜线字符''\'
\' 代表一个单引号(撇号)字符
\" 代表一个双引号字符
注意:区分,斜杠:"/" 与 反斜杠:"\" ,此处不可互换 参考技术C 你指的是转义,\\就可以了。也就是将所有出现\的地方要替换为\\。但是要注意,如果你的内容里面有多个\连接在一起,那你就要将这种情况排除在外了。
所以,使用正则表达式。 参考技术D 你想将'\'替换为别的东西,就创建一个String,用replace方法替换就好了
举例:
举例:我要将 '\'替换为'/'.那么演示如下
String path = file.getAbsolutePath(); // 得到要保存文件的路径
String s1 = path.replace('\', '/'); //将路径中的\替换为/
如何转义mysql jdbc连接字符串中的特殊字符
【中文标题】如何转义mysql jdbc连接字符串中的特殊字符【英文标题】:how to escape special characters in mysql jdbc connection string 【发布时间】:2012-12-08 16:55:00 【问题描述】:我正在尝试连接到远程数据库。我确定远程数据库为我提供了所有权限。但是当我尝试通过jdbc connection
连接到远程 mysql 数据库时出现此错误。我的密码包含* and & symbol
,我认为这是error
的问题原因。但我不知道如何escape those characters
。请帮忙
java.sql.SQLException: Access denied for user 'myusername'@'myhost' (using password: YES)
"jdbc:mysql://myhost/mydb?user=myusername&password=my&password*"
请帮忙
问候
【问题讨论】:
你的意思是你的密码是 (my&password*") ???? i) 尝试将端口添加到服务器 ii) grokbase.com/t/mysql/java/03cvhkkd6b/how-to-in-password 我试过 &但它没有用,我也添加了端口,但它给了我同样的错误。我使用 mysql 5.1.22 j 连接器。还有其他建议吗? 【参考方案1】:URLEncoder可以用:
String connectionString = "jdbc:mysql://myhost/mydb?" + URLEncoder.encode("user=myusername&password=my&password*", "UTF-8");
【讨论】:
【参考方案2】:JDBC 连接字符串为 url 格式,因此您必须对所有参数使用 URL 编码值。在您的情况下,连接字符串应如下所示:
"jdbc:mysql://myhost/mydb?user=myusername&password=my%26password%2A"
【讨论】:
以上是关于java 连接mysql时 怎么对特殊字符转译 例如某个字符 :灰\ 怎样对\ 进行转译的主要内容,如果未能解决你的问题,请参考以下文章