コーディングと文字化け

 

文字化けの原因

ソースコーディングがターゲットエンコーディングと矛盾している。中国のウィンドウシステムのデフォルトのエンコードGBK、プログラマの数に害を与えます。

歪みを最小限に抑えるために、私は個人的に5ヤードの団結、IDE(Eclipseの/アイデア)、ページ(JSP /他のテンプレートエンジン)、アプリケーションサーバ(Tomcatの、など)、ソースコード(Javaソースコードファイルおよびその周辺地域)、データベースを実行するためにと考えてコーディング。

 

EclipseはUTF-8に設定されています

eclipse.iniを開いたEclipseのインストールディレクトリは、ほとんどの最後に行を追加します。

-Dfile.encoding=UTF-8

修正が完了したら、Eclipseを再起動することができます。

 

JSPページのエンコーディング

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 

Tomcatのコーディング

下のTomcatのインストールディレクトリを開き  bin\setenv.bat 、それを作成し、通常は存在しないファイルは、以下を追加します

set JAVA_OPTS=-Dfile.encoding=UTF-8

オープンはconf\server.xml、8080にはURIEncodingを追加するコネクタのノードが属しているポートは、問題の中国の文字化けGETリクエストのほとんどを解決することができます

URIEncoding="UTF-8"
 

ソースコード

通常は、エンコードされたファイル自体、ときに、新しいファイル、IDE、またはプロジェクトのエンコーディングに応じ。

もう一つの隠されたコードは、Javaソースファイルのアリをコンパイルするときに使用されるのmaven /エンコーディングです

次のようにMavenの設定があります

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 

コーディングデータベース

他の4ヤードが解決した場合、そのほとんどの場合は、MySQLのエンコーディングの問題を発生の下で一般的に言えば、

4つのコーディングMySQLがあります

Server characterset:    utf8      // 服务器字节集
Db     characterset:    utf8      // 当前数据集字节集
Client characterset:    utf8      // 客户端字节集
Conn.  characterset:    utf8      // 当前连接的字节集

my.iniのmysqldセクションを変更し、サーバーのキャラクタ・セットを設定する最適なソリューションです

[mysqld]
character-set-server = utf8

しかし、既存のシステムのために、グローバルな変更のリスクが比較的大きい場合、構成JDBCURLを行うために、つまり、クライアントを解決することができます

jdbc:mysql://127.0.0.1/nutzdemo?useUnicode=true&characterEncoding=UTF-8

 

参考文献:

1. コーディングと文字化け  (Wendalグレート神)

おすすめ

転載: www.cnblogs.com/jycjy/p/11570438.html