これまでTera Term(テラターム)を使用してサーバに接続した際に発生する
文字化け対策についていくつか説明してきました。
②Tera Termマクロ-文字コード自動切り替え(文字化け対策その弐)
③Tera Termマクロ-文字コード自動切り替え(文字化け対策その壱)
大体は、これらの設定変更を行っていれば、文字化けは解消されるのですが、これらの対策を実施しても文字化けが解消しないとの相談を先日受けました。
サーバの文字コードとTeraTermの設定両方共に「UTF-8」で揃ってるし???
よくよくヒアリングをかけてみると、日本語が記載されたテキストファイルをサーバにアップして中身を確認すると日本語部分が文字化けしているとの事。
あるコマンドを実行してもらうと。ファイルを作成したのがWindows機だったのが原因で文字化けが発生していた模様です。
検証
ますは、Windowsのメモ帳でファイルを作成し普通に保存します。
それをLinux(CentOS6.2 64bit UTF-8)にアップロードします。
ファイルの中身を確認してみると言われた通り文字化けしてました。
$ cat test1.txt ?キニ?「餔P
ファイルの種類を確認してみると
$ file test1.txt test1.txt: Non-ISO extended-ASCII text, with CRLF line terminators
そのファイルをテキストエディタ(サクラエディタ)で文字コードセットをUTF-8に変更して保存。そのファイルをアップして中身を確認してみると問題なく表示されました。
$ cat test1.txt てすとふぁいる01 $ file test1.txt test1.txt: UTF-8 Unicode text, with CRLF line terminators
Windowsのメモ帳で作成したファイルは標準でSJISで保存されて(いたはず)いたのが原因なのでしょうね。
ちょいと特殊な文字化けパターンでした。
ちょっと勉強になったので、みなさんに情報として展開しておきます。
それではまた。
(参考情報)現状の文字コードの確認方法
$ echo $LANG ja_JP.UTF-8 又は $ env |grep LANG LANG=ja_JP.UTF-8
シフトJISやEUCのファイルは lv で見ることが多いです。
lessは文字化けするのでNG。
やはり、日本語の文字コード対応は、日本人が開発したツールが
一番最適です。
ゆたかさん こんばんは。
情報ありがとうございます。
「lv」コマンド早速試してみました。超便利ですね。
しかしCentOS6.2では標準リポジトリでは「lv」のパッケージが無いみたいです。
CentOS5.x系ではあるんですが・・・。
便利な情報ありがとうございました。
そうなんですよねぇ。最近にディストリビューションでは、同梱されなくなって困っていました。まぁ、英語圏の人には支障のない話なんでしょうけども。
ソースコードからビルドして使っています。