ファイルサーバーでファイル名の文字化け

社内でゼロックスビート利用しており,ビート内に共有フォルダを作成しファイルを共有しています。
当方はPBで他はWinマシンです。ビートのヘルプを参照すると「MacOS-Xでファイルをアップロードすると日本語のファイル名が文字化けします(アルファベットは化けない)」とあり,了解しています。ただ,ゼロックスのサポート外ですが「DAVE」というソフトを利用すればこの問題は解消されるとのことでした。
Macの,単にファイル名を文字化けしないようにするためだけに,購入するのは非常に困難(私自身心苦しい)であり,とは言っても当方から共有するファイル名だけ文字化けするのでは,共有者に対しても困るというのもあります。
そこで,このゼロックスビートの共有フォルダにアクセスするにはFinderからサーバーへ接続で「smb://…」でアクセスするのですが,文字化けせずに共有フォルダへ日本語名ファイルをアップロードする方法,またはフリーのソフト,または情報はありませんでしょうか?

投稿日 2006/11/16 09:51

返信: 29

2006/11/16 11:07 Community User への返信

ビートについては全く知りませんが、サーバとしてSJISファイル名しかサポートしていないようですね。OSXのSMBクライアントはUTF-8しかサポートしていませんので、標準以外のクライアントを使うしかありません。DAVEは最も確実な方法です。(会社で購入するのが心苦しいなら、個人で買えば良いのでは?私も社内では孤独なMacユーザですので、MS Officeなどの必要なソフトは自分で買ってます。)
他にSharityなら文字コードを変換できたと思いますが、現在のバージョン3はフリーではないようです。サポート期間が限定されますが、バージョン2ならフリーで使えたかも。
私も以前社内にWin98マシンがたくさんあってSJISが必要だった頃、バージョン1を使ってみた事がありますが、使い方がわかりにくくて結局やめました。そのうちに社内マシンがほとんどWin2000/XPに変わったので、必要なくなりましたが。

2006/11/16 11:12 Community User への返信

ターミナルで使うのをいとわないなら、OSX に標準で付いている、Windows server にたいする ftp client 様のコマンド、smbclient を使ってみるのはどうでしょう?
man smbclient とすると、smbclient -t で文字コードを変換してくれるようです。
自分では使ったこと無いので、これ以上は分かりません。

2006/11/16 17:52 Community User への返信

社内にSJISのみサポートのNASがあるので、smbclientを使ってみました。しかし、日本語ファイル名のファイルをputしようとすると「NT_STATUS_ACCESS_DENIED」のエラーが出てしまいます。英数字のみのファイルならちゃんとputできるので、パスワードの間違いやアクセス権などの間違いでは無いと思います。
「-t」オプションの使い方がよくわからないですね。サーバ側の文字コードなのか、クライアント(OSX)側なのか、manみてもよくわからん。sjis、utf8、CWsjis、CWutf8などいろいろやってみましたが、全部ダメでした。

2006/11/17 10:00 Community User への返信

はに様,Y.Kawabe様,ありがとうございます。まずはShartyを試しましたがどうもうまくいきませんでした。
NAS(?)では駄目だったようですが,ビートにおいてもターミナルを試してみたいのですが,具体的にsmbclientをどう操作するのでしょうか?
(「あらかじめサーバに接続し,サーバにファイルを置いておいた上で対象ファイルの名称を変更する」という流れになるのでしょうか?)

2006/11/17 10:22 Community User への返信

smbclient の使い方ですが、
UNIXからのSambaの使い方
が参考になると思います。
ここには、sjis コードを使っているサーバに接続するのなら、-t sjis とすればいいと書いてます。これはこのオプションを付けてアクセスすれば、自動的にファイル名のコードを変換してくれますので、接続できてから、ls とすれば、漢字ファイル名がそのままターミナルに表示されるはずです。アップロードするときも、そのまま日本語ファイルをput でアップロードするだけで、OSX の utf-8 コードから指定されたコードに変換してくれるはずです。
うちには適当なサーバはありませんので、-t のテストは出来ませんが、Windows XP の共有ディレクトリーに、ただ繋いで日本語ファイル名を表示させるだけなら出来ました(この場合は、XP も OSX も utf-8 なのでコード変換は不要)。上記ページにそのまま従っただけです。

2006/11/20 06:12 Community User への返信

はに様,今日会社に来てメッセージを確認しましたので,お返事がおくれました。
さて,参考ページを紹介していただきありがとうございます。
また結果をご報告させていただきたいと思います。

2006/11/20 09:51 Community User への返信

さっそくトライしてみましたが…ターミナルを使用する事には抵抗はないのですが,いきなり「-t sjis」接続の方法が分かりません。。。
ターミナルを起動後「ファイル」「サーバーへ接続」「でファイル転送(ftp)」でサーバーを選択した後,「-t sjis」を追加して接続してみたのですが,Can't connectと言われてしまいます。
そもそもが間違っているような気がしますがどのようにすればターミナルで接続できるのでしょうか?

2006/11/20 10:33 Community User への返信

>そもそもが間違っているような気がします
そうですね。
smbclientはターミナルコマンドです。ftpライクというのは、ターミナルのftpコマンドと同様の操作だということであり、Finderからのftp接続とは全く違います。
アプリケーション>ユーティリティ>ターミナルを起動し、通常は次のように接続します。
$ smbclient -U hoge //xxx.xxx.xxx.xxx/share-name
hogeはあなたのユーザ名、xxx.xxx.xxx.xxxはサーバのIPアドレス、share-nameは共有名です。「-t sjis」を入れるなら、サーバの指定の前に入れます。接続ができれば、「smb: ¥>」というプロンプトが出ます。あとはftpとほとんど同じで、「ls」でファイルリストが表示されますし、「cd」でディレクトリの移動、「get xxx」「put xxx」でファイルの読み出し/書き込みです。
いずれにせよ、ターミナルでのftpコマンドを知らないのでは、ちょっととっつきにくいでしょうね、
なお、既に書いたように、sjisのサーバに対しては、私の方の環境ではうまくいってません。(utf-8の文字コードのサーバなら、はにさん同様問題ありません。)「-t」オプションがファイル名の変換に使えるのか?です。

2006/11/20 10:42 Community User への返信

ファイル(samba)サーバのファイル共有に接続するとして、ターミナルから、
smbclient ¥¥¥¥Windows_Name¥¥Share_Name -U user_name
としたら繋がりませんか?
うまく繋がれば、Password: とプロンプトが出ますので、パスワードを入力します。うまく繋がれば、¥> とかのプロンプトが出ます。
ここで、ls とすればファイルサーバ上の共有上に置いてあるファイルのリストが出ます。sjis 変換するときは、smbclient の行の最後に -t sjis とかを追加します。先ず最初の関門は ls としてファイルサーバ上のファイルの日本語ファイル名が正しく表示されるかどうかです。うまく表示されるようなら、¥> のプロンプトで
put file_name
とすれば file_name のファイルをサーバに送ることが出来ます。
ターミナルで日本語ファイル名を入力するには、コピペを使うのが簡単です。

2006/11/21 00:57 Community User への返信

> 「-t」オプションがファイル名の変換に使えるのか?です
OSX の samba パッケージにはcjk (chinese, japanese, korean)パッチが十分当たってないのかもしれません。
Vine 3.2 (日本語文字コードは euc、samba 3.0.14a と出る)でやってみると、相手が Windows XP (utf-8 code) であろうが、euc であろうが(古い Vine の samba サーバ)であろうが、-t オプション付けても付けなくても、日本語ファイル名を正しく表示します。OSX の smbclient では Vine の samba 相手でも、日本語ファイル名を表示できません(-t euc としてもダメ)。
インテルマックなら、pararells を入れるとかいろいろ出来るのですが、、、

2006/11/21 08:56 Community User への返信

日本語ファイル名の表示は、某HPを参考に、以下のconfigファイルを-sオプションで指定すると、正しく表示されました。
[global]
encrypt passwords = yes
dos charset = SJIS
unix charset = UTF-8-MAC
しかし、get/putができないことは変わりありません。

2006/11/21 10:02 Community User への返信

いろいろお教えいただきありがとうございます。
(もしかしたら私と同じレベルの人がいるかもしれないので,以下のとおり報告します)
接続方法ですが,はに様の方法で接続することができました。
ちなみにWindows_Nameはサーバーのドメイン名で,要求されたパスワードはアクセスするユーザーのパスでした(ユーザーIDは登録時に任意のIDに,パスは登録時にbeatから割り振られている)。
「ls」は小文字で「エル・エス」です。
というところまで来て今日は,時間切れです。
もう少しで可能かどうか,分かります。またご報告させていただきます。
(あ,この接続はターミナルを終了するだけでOKですよね?何か特別に操作する必要がありますか?)

2006/11/21 12:26 Community User への返信

> この接続はターミナルを終了するだけでOKですよね?
ターミナル終了すれば接続は切れます。接続だけ切りたいときは、q とか exit とか入力(最後にリターンが必要)すればいいです。
Windows_Name の代わりに IP アドレス、TCP/IP 上の名前何でも使えます。IP アドレスなどを使ったときは、(Kawabeさんが上げられているように)、区切り記号は / の方がいいかも知れません。

2006/11/22 09:44 Community User への返信

すみません。。。
続きを試しているのですが
アップロードするファイルを指定するには,どうすればよいのでしょうか?
ドラッグ&ドロップで対象のファイルのパスが入力されますが,単にput <対象ファイル名>としても「does not exist」と言われてしまいます。。。
ターミナルウィンドウのバーが「-smbclient-」となっており,十字キーでのカーソルの扱いも通常の使い方とはなんだか違うようです…。
何から何までお聞きして申し訳ないです。

2006/11/22 11:41 Community User への返信

> アップロードするファイルを指定するには,どうすればよいのでしょうか?
ターミナルの画面をもう一つ出して(ターミナルでコマンド-N とすれば出ます)、目的のファイルのフォルダーにして、ls -v とすれば日本語ファイルでも表示されます。ここでコピペすればいいです。
ターミナルの画面をもう一つ出さなくても、smbclient で !ls -v としてもいいです。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

ファイルサーバーでファイル名の文字化け

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。