引用链接点这里

(1)web开发中遇到乱码问题,可以根据数据的流向来定位乱码出现的位置。前台发起一个请求,数据通过http协议到后被接收,这里数据会进行一次编码,在ssm环境下,是springMVC来拦截请求进行处理,所以在springMVC中能配置数据的编码格式,springMVC提供的是一个filter,在web.xml中配置。

<!-- 编码过滤器 -->
    <filter>
        <filter-name>springfilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
 
    <filter-mapping>
        <filter-name>springfilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

(2)数据库连接这里有一个编码的参数需要配置。

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/user?useUnicode=true&amp;characterEncoding=UTF-8
username=root

以上的配置都确定没有问题,很大可能性就是数据库乱码了,在新建数据库的时候需要选择一个数据的编码方式。
在这里插入图片描述
(3)如果也没有问题那就可能就我碰到的问题,数据库存的中文变成问号。在MySQL的安装目录(默认在C:\Program Files\MySQL\MySQL Server 5.x)修改my.ini可以解决。mysql中文显示乱码或者问号是因为选用的编码不对或者编码不一致造成的,我是通过修改my.ini配置文件解决了中文变问号的问题。5.7之后没有这个配置文件。

在[client]节点下添加 default-character-set=utf8

在[mysqld]节点下添加 (注:collation是排序方式)
character-set-server=utf8
collation-server=utf8_general_ci
在这里插入图片描述
修改完my.ini文件后,需要重启MySQL服务,在cmd中输入以下命令可以启动或关闭MySQL的服务,也可以在任务管理器—>服务 中手动关闭或开启。

关闭服务 net stop mysql

开启服务 net start mysql

最后可以登录MySQL看看配置是否成功。

输入 mysql -u root -p 进入mysql数据库,如果输入这个命令显示MySQL不是一个命令,需要把MySQL安装目录下的bin 这个路径配到环境变量中去,就可以使用这个命令登录MySQL。

输入密码:*****
show variables like ‘char%’; 显示编码格式
在这里插入图片描述
若都为utf8就说明配置成功,看一下Very good!乱码问题解决了!!!

更多推荐