[samba-jp:20399] [解決][まとめとお礼]Vine 3.2、Windows、Proftpd、Samba混合環境の文字化けについて

J K shogijunki @ yahoo.co.jp
2008年 9月 27日 (土) 17:17:00 JST


こんにちは、J Kです。

>Linux側の自分のログインセッションのロケールをシフトJISに
WindowsXPからputtyを使用してputtyの設定でサーバの文字コードを
EUC-JPにしているのですが、その状態から$LANGをja_JP.Shift_JIS
にして、puttyの設定もShift_JISにした状態で lsコマンドで見てみましたが
文字化けしてました。puttyの設定をEUC-JPにしても同じでした。

>OSのデフォルトがUTF-8ならUTF-8にすべきです。
では、OSのデフォルトがEUC-JPなVine Linuxの場合はEUC-JPに統一
すると言う認識でよろしいのでしょうか?

>ProFTPを直すのは筋違いですからね。
MS側が標準を守らずに勝手なことをしてLinuxサイドに迷惑をかけている事は
承知しております。実際おっしゃられる通りProftpdにパッチを当てて対処
するのは筋違いな事なんだと思います。しかし現状を考えてみると
Windowsユーザばかりが私のFTPサーバに接続してきますし、そのクライアント
ソフトとしてはFFFTPが大半を占めています。FFFTPのデフォルト設定だと
Shift_JISなので設定変更をクライアント側がEUC-JPにしてくれないと
いけない事になり、初心者はこの辺が分からず文字化けしたファイルを
アップロードしてきたりしそうです。なるべくWindows側に負担を与えず
Linux側で柔軟に対処していきたいと言う考えが私にはあります。
100人が接続してきているとしたら、100人が設定変更をしないといけなくなり
現実的ではないからです。サーバ側で対処できるなら私一人の設定変更
で済みます。本来あるべき姿とは確かに違う形態であると重々承知しております。

>いいえ、iconv付きrsyncやsmbfnconvなどいろいろツールは揃っています。
smbfnconv!! こんなツールあったんですね!実際に使ってみましたが
なんて神ツール!と思いました。このツールのおかげで今回の問題は
解決致しました。本当にありがとうございます。
今まで実はconvmvで変換しようと試みた事はありました。
しかしエラーが出て成功しなかったので諦めてました。
当時良く分かっておらずnkfとかも試していたのですが、わけわからなく
なりました。また、Vine 3.2に入っているnkfはバージョンが低く、
(nkf-2.04-0vl1) --guessの文字コード推測オプションが実装されておらず
なぜ出来ないんだ?と頭をかかえてました。

> ※ファイル名文字コードの変換をする場合は、万が一の時
    のために、バックアップは *忘れず* にとっておいてく
    ださい。
バックアップが取れる程対象のデータ量が小さく、もしくはバックアップに
使うストレージが大きいならWindowsマシンにSamba経由で全部渡して
Sambaの設定を変更した後、またWindowsマシンからSambaに渡しなおすと言う
荒業(?)で解決出来るんですが、そんな小さな容量でもなければバックアップ
ストレージもほとんどなくて困っていました。

>CPAN の Encode::EUCJPMSモジュールをインストールして

ココはよく分かりませんでしたが、もしかすると過去にconvmvで変換失敗
してた理由って
>※Samba でファイル共有する場合、convmv でのファイル
    名文字コード変換の際に sjis や euc-jp ではなく
    cp932 や eucJP-ms を使うようにしてください。
これかもしれません。sjisやeuc-jp指定してました。cp932やeucJP-msを
指定すればいけたのかもしれません。


長くなりましたが、今回は smbfnconvと言う素晴らしいツールと
皆様の有り難いアドバイスのおかげ様で、長年の悩みが解決致しました!
感謝の気持ちで一杯です。本当にありがとうございます。

しかし今回解決した事でもう1つ疑問が生まれました。
ご存知かと思いますが、smbfnconvはUTF-8に対応してないようです!
今回は私の環境がVineだったのでEUC-JPとShift_JISの間のトラブルでしたが
これがもしDebianやFedora等のUTF-8を扱うディストリビューションだった
場合はどうやって解決すれば良かったのでしょうか?
具体的にはUTF-8なLinuxのsmb.confに unix charset = cp932 を指定して
運用し続けてしまった場合です。
smbfnconvでは変換できませんので、convmvしかないんですかねぇ?
convmvは過去にエラーが出て動かなかったので他に手はないものかと
考えてしまいます・・・。

-- 
J K <shogijunki @ yahoo.co.jp>
--------------------------------------
Enjoy MLB with MAJOR.JP! Ichiro, Matsuzaka, Matsui, and more!
http://pr.mail.yahoo.co.jp/mlb/



samba-jp メーリングリストの案内