web项目经常遇到的乱码问题

开发web项目经常会遇到请求接口乱码、提交表单乱码,存入数据库乱码,网页显示乱码等情况。

乱码的原因很简单,都是因为数据传输方和接收方编码不一致导致的,但具体实现和配置,还是有不少地方,下面列举常见的编码设置(针对java项目,并且统一使用utf-8编码)。

nginx配置(GET乱码)

      server {

        .....

        charset utf-8,gbk;

      }

tomcat配置(GET乱码)

  

spring配置(GET乱码)

@RequestMapping(method = RequestMethod.GET,value="/xxxx",
produces="text/html;charset=UTF-8")

web.xml配置(POST乱码)


    CharacterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        utf-8
    


    CharacterEncodingFilter
    /*

数据库连接

jdbc:mysql://x.x.x.x:3306/xxxx?useUnicode=true&characterEncoding=utf8

数据库和表定义

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

create  table blog_user
(
   ...
)engine=innodb default charset=utf8 auto_increment=xxx;

数据库配置文件(my.cnf)

[mysqld]下的default-character-set为utf8
[mysql]default-character-set=utf8

数据库客户端连接

SHOW VARIABLES LIKE ‘character_set_%’;
set names utf8;

以上的配置基本能让一个常规的web项目正常的提交和展示数据了。

你可能感兴趣的:(web项目经常遇到的乱码问题)