SpringBoot+Mybatis+MySQL页面显示乱码,显示的是??问号

本文介绍了解决SpringBoot项目中使用Mybatis和MySQL时出现的页面乱码问题的方法。通过在Controller的映射中添加produces属性,设置字符集为utf-8,成功解决了乱码显示的问题。

SpringBoot+Mybatis+MySQL页面显示乱码,如下图:

解决办法:

在Controller的映射中添加produces = "application/json;charset=utf-8",即可解决乱码问题。

解决后的显示:

 

### MyBatis 插入数据库问号乱码解决方案 当遇到MyBatis插入数据至MySQL数据库时出现中文字符变成问号的情况,这通常是由字符编码设置不当引起的。为了有效解决问题,需确保整个链路中的字符集配置一致。 #### 数据库服务器端字符集配置 确认MySQL服务器默认字符集不是`latin1`而是支持多字节字符的字符集如`utf8mb4`或至少是`utf8`。可以通过修改MySQL配置文件(`my.cnf` 或 `my.ini`)来实现: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` 此更改使得新创建的表和列自动采用指定的字符集[^1]。 #### JDBC连接URL参数调整 对于JDBC URL字符串,在Windows平台上应包含如下所示的额外参数以强制客户端和服务端之间使用UTF-8编码传输数据: ```plaintext jdbc:mysql://127.0.0.1:3306/database_name?useUnicode=true&characterEncoding=UTF-8&useSSL=false ``` 注意这里去掉了HTML实体转义符(&)并替换成普通的&( ampersand),因为这是标准URI格式的一部分[^2][^3]。 #### 应用程序内部字符集设定 还需检查应用程序本身的字符编码设置,特别是如果前端提交的数据包含了非ASCII字符,则应在接收这些输入的地方显式指明期望接收到的是UTF-8编码的内容。例如,在Spring Boot项目中可以在application.properties里加入以下配置项: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8 server.servlet.encoding.charset=UTF-8 server.servlet.encoding.enabled=true server.servlet.encoding.force=true ``` 以上措施共同作用可以有效地防止由于不同组件间不匹配而导致的中文乱码现象发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值