【ターミナル】日本語が文字化けしてしまう時の解決方法(環境変数の設定まで)



ある日、desktopで`ls`実行した時に…

```ruby:ターミナル
lancai@oja Desktop % ls -l
```

```ruby
total 23336
drwxr-xr-x@ 27 lancai  staff      864 Feb 29 14:14 ajax_crud_sample
drwxr-xr-x   4 lancai  staff      128 Feb 27 23:57 git_sample
drwxr-xr-x   4 lancai  staff      128 Feb 27 23:05 hell
drwxr-xr-x@  4 lancai  staff      128 Mar  1 13:25 hello
drwxr-xr-x   3 lancai  staff       96 Feb 29 14:08 helloHeroku
drwxr-xr-x  13 lancai  staff      416 Mar 12 22:27 joint_dev_task
drwxr-xr-x   5 lancai  staff      160 Mar 21 16:15 mosha
drwxr-xr-x@  9 lancai  staff      288 Mar 26 22:19 npm_sample
-rw-r--r--@  1 lancai  staff  4634176 Mar 26 22:23 ??????????????????????????? 2020-03-26 22.23.14.png
-rw-r--r--@  1 lancai  staff  2202423 Mar 27 21:08 ??????????????????????????? 2020-03-27 21.07.57.png
-rw-r--r--@  1 lancai  staff  5104788 Mar 27 21:58 ??????????????????????????? 2020-03-27 21.58.42.png

```

下３行のファイル名が文字化けしてて「😶！？」

そういえばRubyか何かの環境構築する時に日本語打ったら文字化けしてたけど解決せずそのままだったなあ…と！！

ということでこれを機に色々ググった結果、**解決した**のでその方法を記録していきます。


#ターミナルの設定
##ターミナル＞環境設定＞プロファイル＞詳細
![ターミナル設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584233/e7565c98-bae5-a24c-4c42-f2d4830add40.png)
↑赤色の丸印２箇所が画像の通りになっているかチェック


##ターミナル＞環境設定＞エンコーディング
![ターミナル設定２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584233/a38d6304-73e5-a52c-e1f2-a187e6c4992b.png)
↑画像の通りにUnicode(UTF-8)にチェック

#LANGの値を確認

ご自身のホームディレクトリにて以下を実行
※ホームディレクトリ・・・ターミナルで`cd`を実行した時に移動できる。

```ruby:ターミナル
lancai@oja % echo $LANG
```

```ruby
C
```

※↑ここで`ja_JP.UTF-8`と出ていたら解決とのことだが、`C`と表示される。

#現在使っているシェルを表示

```ruby
lancai@oja ~ % echo $SHELL
```

```ruby
/bin/zsh
```

- `/bin/zsh`が表示されたら`~/.zshenv`
- `/bin/bash`が表示されたら`~/.bash_profile`

のいずれかのファイル内に`export LANG=ja_JP.UTF-8`を追記する。(＝環境変数の設定が完了)

私の場合は`/bin/zsh`が表示されたので`~/.zshenv`に`export LANG=ja_JP.UTF-8`を追記することで
環境変数の設定が完了するということです。

#`~/.zshenv`と`~/.bash_profile`の場所

ホームディレクトリ内にあるらしい

#ホームディレクトリに移動
```ruby:ターミナル
lancai@oja desktop % cd
```

```ruby
lancai@oja ~ %
```

##ホームディレクトリ内にあるファイルなどを表示

```ruby
lancai@oja ~ % ls -a
```
```ruby
.			.nodebrew		Library
..			.npm			Movies
.CFUserTextEncoding	.oracle_jre_usage	Music
.DS_Store		.rbenv			MyVagrant
.Trash			.ssh			Pictures
.atom			.subversion		Public
.bash_profile		.vagrant.d		VirtualBox VMs
.bash_profile.swp	.viminfo		afax_crud_sample
.bash_profile.txt	.vscode			agametter_app
.bashrc			.yarnrc			ajax_crud_sample
.bundle			.zsh_history		demo
.config			.zshrc			dq_like_app
.gem			.zshrc.swp		es6_sample
.gitconfig		Applications		gitwork
.inputrc.txt		Desktop			hello
.local			Documents
.netrc			Downloads
```
本来上記の中に入ってるらしいのですが
どうやら私の場合、`~/.zshenv`が無かったようなので
以下の方法で作りました。
↓
#`touch`でテキストファイル作成

```ruby:ターミナル
lancai@oja ~ % touch ~/.zshenv
```
↓作成できたはずなので`open`で開く（テキストエディタが開きます）

```ruby
lancai@oja ~ % open ~/.zshenv
```
テキストエディタ内に`export LANG=ja_JP.UTF-8`を入力し、保存
![テキストエディタ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/584233/283fc769-6549-59d7-152c-07ca4be61dfe.png)
##ターミナルに戻り、以下を実行

```ruby
lancai@oja ~ % exec $SHELL -l
```

##LANGの値を確認
```ruby
lancai@oja ~ % echo $LANG
```

```ruby
ja_JP.UTF-8
```
`ja_JP.UTF-8`に設定できたみたいなのでdesktopで`ls`実行

```ruby
lancai@oja ~ % cd desktop
```
```ruby
lancai@oja desktop % ls
```
```ruby
ajax_crud_sample
git_sample
hell
hello
helloHeroku
joint_dev_task
mosha
npm_sample
スクリーンショット 2020-03-26 22.23.14.png
スクリーンショット 2020-03-27 21.07.57.png
スクリーンショット 2020-03-27 21.58.42.png
```
日本語の文字化け部分が解消されました👍