Skip to content
7月 18 / rakkyoo

Emacsのeshellで,rubyの出力だけ文字化け

Emacsでeshellを使ってターミナルでの操作を代替したいなって思っていたのですが,rubyの出力だけいつも文字化けしていました.

何故か理由がわからず,もんもんとしていたのですが,

るびきちさんのメルマガを購読していることもあり,直接るびきちさんに質問してみました.

質問内容は,

1
2
3
4
# -*- coding: utf-8 -*-
# test.rb
a = "テスト"
p a

として,ehsell上で実行すると

1
2
$ ruby test.rb
"\u30C6\u30B9\u30C8"

と文字化けしてしまうということ.
kconvを使って,いろいろな文字コードで出力

1
2
3
4
5
6
7
# -*- coding: utf-8 -*-
# test.rb
require 'kconv'
#a = "テスト".toutf8
#a = "テスト".tosjis
a = "テスト".toeuc
p a

してみても,すべて文字化けしてしまうこと.

こんな簡単な質問に答えてくれるのかな?っと思っていたのですが,すぐに返ってきました.いつも読んでいる本の作者さんなので,感動してしまったのですが,

結論として,eshell上で,「言語情報(ロケール)がわからないから日本語が表示されない」ということでした.
eshell上で,

1
$ echo $LANG

としても何も表示されないことが原因でした.

そこで,るびきちさんの助言で,「.emacs.d/init.el」に以下を追記して解決となりました.

1
(setenv "LANG" "ja_JP.UTF-8")

無事に解決して,一安心です.
何より,月額512円で毎週すばらしい情報と,個別のメール対応をしてもらえるメルマガはとっても素敵です.

以下,日々の全部バイブルです.

[`twib` not found]

Leave a comment

CAPTCHA


This blog is kept spam free by WP-SpamFree.