怀疑数据库没有采用UTF8编码。
DB也是UTF8格式,没有问题。
怀疑Hibernate连接字符串问题。 application.properties修改为通过utf8连接mysql,但是问题依然没有解决。
spring.datasource.url=jdbc:mysql://localhost:3306/byhieg?useUnicode=true&characterEncoding=utf8spring.datasource.username=rootspring.datasource.password=123456spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.jpa.properties.hibernate.hbm2ddl.auto=updatemultipart.maxFileSize: 10MBmultipart.maxRequestSize: 10MB
写一个测试代码,进行测试,看是否会出现乱码。
@RunWith(SpringRunner.class) @SpringBootTest public class ManageApplicationTests { @Autowired private UserRepository userRepository;@Testpublic void contextLoads() {}@Test public void testEntity() { User user = new User(); user.setName("中国"); user.setNickname("中国1004"); user.setPassword("123456"); userRepository.save(user); User user1 = userRepository.findOne(user.getId()); System.out.println("User info:" + user1); }
直接写入依然乱码,判断跟网页没有关系,应该是服务器问题。
检查Mysql参数,发现character_set_server为latin1
修改mysql.ini,然后重启,解决乱码问题。
[mysql]default-character-set=utf8[mysqld]character-set-server=utf8basedir = D:\\tools\mysql-5.7.16-winx64datadir = D:\\mysql_dataport = 3306