かえるのプログラミングブログ

プログラミングでつまずいたところとその解決策などを書いていきます。

文字コードエラー

表題の内容の自分用の備忘録です。

1 ファイルの文字コード設定が原因のケース

  • ( i )
yum install nkf -y
nkf -g sample.txt
nkf -w --overwrite sample.txt
  • ( i i )
import sys, codecs
import io
# 3.6 =< 3.x
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

2 エディタの文字コード設定が原因のケース

https://qiita.com/jack-low/items/91bf9b5342965352cbeb

3 他、環境変数に設定して解決するケース

export LANG="ja_JP.UTF-8"

4 centos7 環境で使える

  • ベタ書き
$ sudo yum -y groupinstall "Japanese Support"
$ sudo localedef -f UTF-8 -i ja_JP ja_JP.utf8
$ sudo vi /etc/sysconfig/i18n
LANG="en_US.UTF-8"
↓
LANG="ja_JP.UTF-8"

https://yk5656.hatenadiary.org/entry/20140527/1402758009
  • Dockerfile に記載
Dockerfileに書く場合

RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG="ja_JP.UTF-8" \
    LANGUAGE="ja_JP:ja" \
    LC_ALL="ja_JP.UTF-8"
https://qiita.com/YuukiMiyoshi/items/f389ea366060537b5cd9