记Java + MySQL开发中的一次乱码问题

开发平台在Linux下,默认Java和MySQL也都是UTF-8的。一开始是在搜索(LIKE '%query%')的时候发生的,搜索中文关键字没有结果,网上搜了一下都说是表建得有问题,方法是LIKE BINARY一类的,测试过都不行,而且通过Mysql Query Browser去执行带中文的搜索时结果也是能出来的。排除MySQL那头的问题,会不会是乱码问题?之所以一开始没这么怀疑是因为数据库读取出来的中文都是正常。测试了一些写入,果然出乱码了,那应该就是乱码问题了。突然想起来这问题很久以前我遇到过的!!!

本案例中是通过连接池与MySQL连接的,在/META-INF/context.xml文件中,将原来的

url="jdbc:mysql://localhost:3306/ebookstore

改为

url="jdbc:mysql://localhost:3306/ebookstore?useUnicode=true&characterEncoding=UTF-8"

注意标记红色的部分,并不是本文乱码,这在xml文件中代表&这个符号。

测试了下,果然OK了!



关于 McKelvin

a hacker who's interested in `music computing` and `network security`.
此条目发表在 Work 分类目录,贴了 , , 标签。将固定链接加入收藏夹。