最近在做一个项目,有一个功能是这样的:A服务中有个通讯录功能,可以对通讯录进行增删改查的操作。但通讯录是存在B服务中的数据库的。那么问题出现了,从A服务中增加一条中文的记录,到了B服务的数据库中就变成了乱码,然后在B服务的页面输出通讯录时,因为它没有做转码处理,所以显示是乱码。该怎么做能让A服务储存进去的中文在B服务的数据库中不是乱码呢?(PS:B服务数据库中的那个乱码字段是UTF-8编码,A服务存的时候该字段也是UTF-8编码的)谢谢。
检查一下编码吧,两边要统一,不仅仅是数据库的编码,A服务传给B服务的时候也要固定编码
请检查以下几处编码格式:
页面、服务器、数据库的编码应该统一成UTF-8编码的。
1、html页面在header增加
2、java服务器,在web.xml中增加编码过滤器
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
3、mysql数据库
创建表时CREATE TABLE
tablea
(
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
jdbc链接:
jdbc:mysql://xxxx:3306/yyy?useUnicode=true&characterEncoding=UTF-8
页面、服务器、数据库的编码应该统一成UTF-8编码的。
1、html页面在header增加
2、java服务器,在web.xml中增加编码过滤器
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
3、mysql数据库
创建表时CREATE TABLE
tablea
(
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
jdbc链接:
jdbc:mysql://xxxx:3306/yyy?useUnicode=true&characterEncoding=UTF-8