[RHEL6] Redhatでwindowsから送ったファイルのファイル名が文字化けする件

Windows上での日本語ファイルがLinuxに送ると文字化けしちゃった。それを元に戻したい!!って思って、その方法を調べました。
オチから言うと、今から書くことをやらなくても、WinSCPなどの設定をきちんとしてやれば文字化けしないみたいです。悲しい(笑)

文字コードが違う

WindowsはSJISをベースにしたcp932という文字コードなのに対して、Redhat6の文字コードはUTF-8なのでファイル名は「invalid Encoding」というエラーになっているようでした。

余談

Redhatのファイル名の文字コードは以下のように確認できます。
13行目の通り、デフォルトでUTF-8が指定されているみたいです。

ファイル名の変更:convmv

転送時にうまくいかないことはわかったところで、redhatに転送後にファイル名を変換するツールを見つけました!
convmvってやつです。昆布ムーブ、ですかね?convって何の略なんだろう。。

「–notest」をつけると実際に変更されます。つけないと、とりあえず、変更できるかの状況確認のみ。
「-r」は再帰的にってことで、「-f」はfromで「-t」はToってところでしょうか?
そういうわけで、再帰的にcp932からutf-8に変更してます。

余談

CentOSのレポジトリにはconvmvは存在しなかったので、rpmforgeからいただきました。
rpmforgeのレポジトリの追加方法は以下を参照。

おしまい

私はWinSCP使ってファイル転送してるんですが「あれ?こんなことなら最初からWinSCPに変換機能があればいいんじゃない?」と思いました。
そして、改めてその観点で調べると、きちんと設定をすればWinSCPで送っても文字化けしないことがわかりました…という遠回りの話。

近道はこちら↓
[WinSCP] 転送時に日本語ファイル名が文字化けするのを防止する方法

  • ■ システムの科学
    システム創成学科のシミュレーションコース的にはバイブル的存在であったと認識しております(笑)社会システムや人工物をどのように設計していくかについて俯瞰的に書かれているので、自分の思考のフレームができます。
PAGE TOP ↑