自己本地tomcat启动是正常的 页面没有乱码
发布服务器以后 中文都是乱码
下面是我本地的图片
CREATE TABLE 时指定 utf8mb4 编码
从目前来看极有可能是你发布的服务器的tomcat配置问题。因为本地的tomcat,特别是开发环境,默认了utf编码,而发布环境安装的tomcat可能没有经过任何配置。
先使用sql查询出需要导出的内容,将longtext类型使用cast转化成char类型SELECT company_id, wechat_mp_appid
set names utf8;
首先在mysql命令界面输入show variables like "char%"看一下你是否设置为utf8,如果没设置可以在建表时后跟charset=utf8,或者在ini配置文件里改,一劳永逸,
如果是utf8还乱码的话,请查看tomcat是否配置默认为utf8,具体配置在myeclipse的preference里进行
看看本地字符集合服务器端是否一致
编辑字段,在后面的 整理 选择utf8_general_ci
凡是乱码,必然是编码不一致的问题。
sql查询的字符集与显示的字符集不一致
在配置文件那里设置utf-8
names =utf8
这个是服务器上面的编码和数据库的不一致导致的这种情况,需要修改服务器上面的编码,可以在页面上修改HTML的编码
本地编码和服务器编码是否一样
你的情况我遇到过, 你看看是不是你tomcat配置文件中 少了URIEncoding="UTF-8" 这个编码设置,因为在本地的tomcat中他会自带这个配置,但在linux环境中并没有这个配置,需要自己手动加上
造成这种乱码的现象,应该是编码不一致的问题
mysql编码,java程序编码,还有html编码,整个系统的编码保持一致。
检查
开发环境字符集
数据库设置字符集
数据库服务器字符集
这3个是否一致
tomcat配置问题。因为本地的tomcat,特别是开发环境,默认了utf编码,而发布环境安装的tomcat可能没有经过任何配置。
在执行插入的时候,编码不正确,重新设置一下就行了
导入时设置编码模式 mysql -uroot -p123456 --default-character-set=utf8 databasename < /root/databasename.sql
编码不一致导致的问题,要多点排查编码
tomcat里面貌似也能设置编码
在数据库和后端使用的框架中,设置编码格式
@RequestMapping(value="/",produces="text/html; charset=UTF-8",method=RequestMethod.GET)
spring 中配置下