mysql 5.5无效的转义序列java

static byte[] ac = {'\\', '\'', '{', '}', '{'}; //not OK insert into tt values('\\\'{}{')
static byte[] ac = {'\\', '\'', '{', '}'}; //OK insert into tt values('\\\'{}')
static byte[] ac = {'\\', '\'', '{'}; //OK insert into tt values('\\\'{')
static byte[] ac = {'\'', '{', '}', '{'}; //OK insert into tt values('\'{}{')
static byte[] ac = {'\\', '{', '}', '{'}; //OK insert into tt values('\\{}{')

> Ubuntu系统
> MySQL 5.5
> MySQL JDBC 5.1.22

我无法在blob表字段中插入5个字节,字节如上所示.
数据源连接编码设置为UTF-8.

相关信息:http://dev.mysql.com/doc/refman/5.5/en/string-literals.html

知道为什么{}如此特别吗?它适用于工作台.

对于不好,我有以下例外:

java.sql.SQLException:不是有效的转义序列:{‘)

解决方法:

这是MySQL的JDBC客户端(Connector / J)的某些版本中的错误;看http://bugs.mysql.com/bug.php?id=31457(以及其他链接的bug).您应该能够通过升级到最新的Connector / J来修复它;或者,您可以通过禁用转义处理(通过编写Statement.setEscapeProcessing(false))来解决它.

上一篇:HTML,PHP – 回显时转义’<'和'>'符号


下一篇:输出在我的PHP中转义(html标签呈现原样)