webプロジェクトでよくある文字化け問題

1657 ワード

ウェブプロジェクトを開発すると、要求インターフェースが文字化けしたり、フォームが文字化けしたり、データベースに入れて文字化けしたり、ウェブページが文字化けしたりすることがよくあります。
文字化けの理由は簡単で、いずれもデータ送信者と受信者の符号化が一致しないためであるが、具体的には実現され、構成されているところが多く、以下に一般的な符号化設定(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;
以上の構成は、基本的には通常のウェブプロジェクトのデータの提出と展示を行うことができます。