mysql, 一个小点引出的问题

当我们连接 MySql 的时候,都会使用这样的 url:
引用
jdbc:mysql://localhost:3306/dbname

不过有的人也说,为了防止 Mysql 乱码, 应该使用这样的 url:
引用
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8


那么,url 中的 useUnicode 以及 characterEncoding 到底是不是必须的呢?下面就说说俺的实际体会。

最近做了一个小网站,网站中含有日文信息,最开始连接 mysql 使用的 url 是 jdbc:mysql://localhost:3306/dbname , 当网站部署到日文系统上或者是中文系统上时,没有任何问题。

可是偏偏今天,测试的时候输入了一个字符“・”,这是一个日文里的点的符号。在日文系统里测试没有任何问题。可是在中文系统里测试发现,这个符号一提交,就变成了 “?”这个符号。

然后我又测试了其他日文符号,如“¨”、“∴”等等,全都没有问题,而且其他日语单词也没有问题,唯独这个“・”在中文系统里不能提交!

这个小点的问题还真头疼,如果全部都是乱码倒还好解决,可偏偏就这个点有问题。经过逐一检查,tomcat, DWR 均没有问题,那问题就应该出在 mysql 上了。

虽然数据库,表都是utf-8编码,难道这个符号特殊,当 mysql 处理它的时候会有问题?所以就修改了一下连接 mysql 的 url:
引用
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8


没想到,还真好使!

俺对 mysql 以及jdbc驱动的具体实现不清楚,不过这个“小点”让俺也学到了不少:
1、如果表中的数据和操作系统都是一个语言的,那么 useUnicode 以及 characterEncoding 有没有都可以。

2、如果表中的数据和操作系统不是一个语言的,那么 useUnicode 以及 characterEncoding 就非常有必要了。

总之一句话:最好还是使用 useUnicode 以及 characterEncoding 。

你可能感兴趣的:(tomcat,mysql,jdbc,DWR)