9
11

More than 5 years have passed since last update.

ubuntu:文字化けした時の対応

Posted at

ubuntu上にpython環境を作って動作確認した時に何故か日本語の部分でエラーが出たのでその時に行ったことメモ

macOS High Sierra 10.13
#ubuntu on docker
cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

とりあえずpythonをインストールしてみて動作確認したらエラー発生。。どうも日本語が読めないっぽい。。

hoge.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

aaa = "あいうえお"
print(aaa)
python hoge.py 
Traceback (most recent call last):
  File "aa2.py", line 7, in <module>
    print ('\u3053\u308c\u3067\u65e5\u672c\u8a9e\u3082\u6253\u3066\u307e\u3059')
  File "/root/.pyenv/versions/3.6.3/lib/python3.6/codecs.py", line 377, in write
    self.stream.write(data)
TypeError: write() argument must be str, not bytes 

色々調べていると日本語環境がどうも入っていないような気がしたので日本語環境を構築してみた。

echo $LANG

何も表示されなかったので、多分これが原因と思い日本語環境にしてみた。

apt-get install language-pack-ja-base language-pack-ja
locale-gen ja_JP.UTF-8
echo export LANG=ja_JP.UTF-8 >> ~/.profile
source ~/.profile
echo $LANG
ja_JP.UTF-8

python hoge.py 
あいうえお

オッケー。ちゃんと表示されました。

これに行き着くまでに色々やったことがあるので合わせてメモしておきます。

最初はソースの文字コードが違うと思っていたのでその辺りから調べていた。調べるためにnkfをインストール。

apt-get install nkf

cat hoge.py | nkf --guess
#utf-8に変換
nkf -w --overwrite hoge.py

文字コードとかホント嫌い。

Ubuntuに日本語localeを設定する
http://www.dreamedge.net/archives/111
nkfで文字コード変換
https://qiita.com/kentakozuka/items/d874a572ddf6cc34213f

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11