Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

ldap2017
研究開発業務の一環として、試作レベルのシステム開発を行っていくことになりましたので、勉強しながら色々とやって行きたいと思います。文系の学卒の素人ですので色々指摘いただけると幸いです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした