これまでTera Term(テラターム)を使用してサーバに接続した際に発生する
文字化け対策についていくつか説明してきました。

①Tera Termの環境設定-文字化け対策

②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