質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • Linux

    3500questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • AWS(Amazon Web Services)

    1841questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Vim

    488questions

    VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Amazon Linuxで`man vim`を実行したら、文字化けしていた。なぜ?

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 277

yuji38kwmt

score 418

 環境

 ホスト

  • Xubuntu 18.04 LTS
  • xfce4-terminal 0.8.7.3
  • VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 10 2018 21:31:58)

 リモート

  • Amazon Linux AMI release 2018.03
  • VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 24 2017 18:24:58)

 問題

AWSのEC2インスタンスにSSHで接続しています。
リモート先で、man vimコマンドを実行したら、マニュアルページが以下のように文字化けしていました。

イメージ説明

環境変数LANGは以下の通りです。

$ echo $LANG
ja_JP.UTF-8

 質問

ホストのXubuntuで、man vimを実行したところ、問題なく日本語が表示されていました。
(マニュアルページを日本語にするため、yum -y install man-pages-jaを実行した)
リモート先のAmazon Linuxで、マニュアルページが文字化けしているのは、なぜでしょうか?

また、解決方法がございましたら教えてください。
vimのマニュアルはブラウザで閲覧できるので、困ってはいません。

 参考サイト

 補足1 ターミナルの文字コード

ホストで使っているターミナルの文字コードはUTF-8です。

イメージ説明

 補足2 vimのmanual page

以下のコマンドで、vimのman pageを確認しました。

$ whereis vim
vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
$ echo $LANG
ja_JP.UTF-8
$ cp /usr/share/man/ja/man1/vim.1.gz .
$ gunzip vim1.gz

vim.1ファイルをUTF-8で開いた結果です。文字化けしていました。

.TH VIM 1 "2006 Apr 11"
.SH 名前
vim \- Vi IMproved, プログラマのテキストエディタ
.SH 書式
.br
.B vim
[options] [file ..]
.br
.B vim
[options] \-
.br
.B vim
[options] \-t tag
.br
.B vim
[options] \-q [errorfile]
.PP
.br
.B ex
.br
.B view
〜〜〜〜

ホストのmanページは、文字化けていませんでした。

.TH VIM 1 "2006 Apr 11"
.SH 名前
vim \- Vi IMproved, プログラマのテキストエディタ
.SH 書式
.br
.B vim
[options] [file ..]
.br
.B vim
[options] \-
.br
.B vim
[options] \-t tag
.br
.B vim
[options] \-q [errorfile]
.PP
.br
.B ex
.br
.B view
〜〜〜〜
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

Amazon Linuxのベースとなっている(?)RHELの更に源流であるFedoraで報告され、すでに修正が取り込まれている不具合と同様の事象に見えます。

https://bugzilla.redhat.com/show_bug.cgi?id=1035606

どういった不具合かというと、RPMパッケージのビルド処理のうち、Vimのソースに含まれるマニュアルページの元ファイルをUTF-8に変換する処理において、
「「UTF8の元ファイルをlatin1として扱ってUTF8に変換する」というおかしな処理内容」が実行され、データが破損する、というもので、
RPMパッケージのビルド処理内で元ファイルの文字コードを判定し、もともとUTF-8であれば変換をスキップするといった内容がFedora 22で取り込まれています。
しかし、RHEL7はFedora 19をベースとしている関係上、上記の不具合への対処が取り込まれていないようで、Amazon Linuxも同様の影響を受けているのではないでしょうか。

Amazon Linuxではなく手元のCentOS7で確認した内容で恐縮ですが、
VimのSRPMに対して上記のRed Hat Bugzillaで提案されているのとほぼ同様の修正をSPECファイルに適用した上でパッケージをビルドし、得られたRPMパッケージをインストールしたところ、CentOS7で同様に発生していた日本語環境でのVim関係のmanページの文字化けが解消しました。

vim.specの差分は下記の通りです。

--- vim.spec.org        2018-06-14 22:35:24.008653501 +0900
+++ vim.spec    2018-06-14 22:34:40.351096102 +0900
@@ -772,6 +772,9 @@
 rm -f %{buildroot}/%{_datadir}/vim/%{vimdir}/tutor/tutor.gr.utf-8~
 ( cd %{buildroot}/%{_mandir}
   for i in `find ??/ -type f`; do
+    if [[ "`file --exclude soft $i`" == *UTF-8\ Unicode\ text* ]]; then
+      continue
+    fi
     bi=`basename $i`
     iconv -f latin1 -t UTF8 $i > %{buildroot}/$bi
     mv -f %{buildroot}/$bi $i

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/15 23:49

    ありがとうございます!
    理解できました!
    バグレポートが2013年と古いですね。
    う〜ん闇が深い?

    キャンセル

0

あなたの使ってるターミナルソフトの文字コード設定をUTF8にしましょう


ってこれ、SJISできてるんじゃね?
インストールしたmanpageがSJISのものだったってことのような

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/09 00:37

    man pageを確認しましたが、UTF-8, EUC-JP, Shift_JISのいずれの場合も、文字化けしていました。

    キャンセル

0

つLANG=C man vim

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/09 00:36

    ありがとうございます。このコマンドで、一時的に解決できました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Linux

    3500questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • AWS(Amazon Web Services)

    1841questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Vim

    488questions

    VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。