Dockerコンテナの中国語文字化けしソリューション


dockerの中国語の文字化けしの問題に遭遇しました


1.viファイルを開くと中国語の文字化けしが発見され、この場合は修正するだけである.vimrcファイル

cat << EOF > /root/.vimrc
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8
EOF

2.データベースをインポートして中国語が文字化けしていることを発見し、データベースファイルを修正し、符号化フォーマットを中国語符号化に指定する必要がある

 echo "set names utf8;" >> abc.sql

3.システムコードフォーマットを中国語コードに設定

echo "export.UTF-8" >> /etc/profilesource /etc/profile

4.深い穴!docker centos6.8容器にen_がありませんUS.UTF-8言語パック!おめでとう、深い穴に出会った!!

#   en_US.UTF-8  
RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

#  , locale-gen 。
locale-gen ubuntu,localedef centos。
yum remove glibc-common -y
yum install glibc-common -y
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
localelocale -a

dockerのミラーはすべて去勢版で、多くの機能が去勢を削除されました.localedefはglibc-commonにバインドされています.去勢版のミラーにはこのコマンドはありません.glibc-commonを再インストールし、まずglibc-commonをアンインストールし、glibc-commonを再インストールし、最後に自分の必要な言語パッケージをダウンロードする必要があります.localedef -v -c -i en_US.UTF-8ミラーリング後にこのピットが発生しないように、ミラーリングを作成するときに環境変数を指定します
vim /root/cjm/flume/Dockerfile
···
# 
FROM flume_v1.0
# 
MAINTAINER by cgls
# 
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
CMD ["/root/start.sh"]
···
docker build -t flume_v2.0 /root/cjm/flume/.