Java webプロジェクトはLinux(Contos)の下で展開して疑問符の中国語の文字化けの問題が現れます

3037 ワード

问题详述:1、データベースの元の汉字のデータは正常に表示します2、ローカルでデータを追加して大丈夫で、サーバーの上で新しく中国语の汉字のデータを追加して表示します
問題解決プロセス:1、まず符号化問題であると断定し、通常デフォルトの符号化はUTF-8である.2、ローカルは大丈夫です.オンラインのtomcatは同じものを使って、service.xmlの中のURIEncodingの問題を排除します.
URIEncoding="UTF-8"を追加します.これはgetリクエストパラメータやパスに中国語が付いているときの符号化の問題を解決するためです.windowsでこれを追加しないと、getリクエストに中国語パラメータやパスのように問題が発生します.パスであれば404、パラメータであれば文字化けになります


3、mysql構成mysqlの符号化フォーマットを表示し、デフォルトmysqlの符号化構成:server、clientはlatin 1(ラテン符号化セット)であり、中国語ではサポートされていない.Xshell 6を開いてmysqlにログインします.
mysql -uroot -p

エンコーディングの表示:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |(*  )
| character_set_connection | utf8                       |(*  )
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |(*  )
| character_set_server     | latin1                     |(*  )
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

チャーターを見てset_serverの符号化はデフォルトなので、この構成をutf-8に変更します.
# vim /etc/my.cnf

#" For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names = 1
character-set-server=utf8
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


aキーを押して編集モードに入り、空席を見つけて追加します.
character-set-server=utf8

aまたはiを押してINSERT状態を終了し、コロン:wqを押して終了を保存します.
138: Can't write viminfo file /root/.viminfo!
Press ENTER or type command to continue


車に戻って修正を終了し、mysqlを再起動すればOK!
参考資料:https://blog.csdn.net/qq_28039297/article/details/76686022