今天搭了个Spring MVC的环境,结果发现写入MySQL的中文总是乱码。 一直以为是tomcat或者Spring的问题,
总怀疑是tomcat的URIEncoding没有生效啥的,折腾半天tomcat和spring的配置文件翻了个遍,最后发现是jdbc的url
没有带useUnicode=true和characterEncoding=UTF-8的原因,真是悲剧,都是平时不注意细节酿成的恶果。
完整的格式如下:
jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=UTF-8
总结一下:
为了确保UTF-8中文可以正确的从Client到达你的数据库,请检查:
tomcat的Connector是否赔了URIEncoding="UTF-8"
Spring MVC是否配了CharacterEncodingFilter
jdbc是否有useUnicode=true&characterEncoding=UTF-8