柘植です。
うちでも$HOME/.smb/smb.confを作ることで文字化けしなくなりました。
いくやさん、yossy_takeuchiさん、どうもありがとうございます。
On Tue, Jun 14, 2005 at 10:09:39PM +0900,
AWASHIRO Ikuya wrote:
> yossy_takeuchi wrote:
> > 《組み合わせ2》
> > unix charset = EUCJP-MS
> > display charset = cp932
> > dos charset = cp932
> この組合せで、~/.smb/smb.confというファイルを作成し、中身を
> [global]
> dos charset = CP932
> としてみたらいかがでしょう
なかなか情報源が探せなかったのですが、libsmbclientのmanに
書いてありました。(Debianのパッケージにはmanが含まれてないみたい)
http://samba.vernstok.nl/docs/htmldocs/manpages-3/libsmbclient.8.html
libsmbclientが他のアプリケーションから(ユーザにより)起動されると、
libsmbclientはユーザの$HOME/.smbというディレクトリを探す。そのディ
レクトリにsmb.confというファイルが存在すれば、システムの設定ファイ
ル/etc/samba/smb.confを完全に上書き(override)する形で読み込まれる。
また、smb.conf.appendというファイルが存在すれば、/etc/samba/smb.conf
を読み込んだ上でsmb.conf.appendの内容を追加で(append)読み込む。
という内容のようです。
また、man smb.confで見てみると、いくやさんの方法でsmb.confを作った
場合に、実際にlibsmbclientに渡されるのは
unix charset = UTF8 (無指定のときのデフォルト値)
dos charset = CP932
display charset = ASCII (無指定のときのデフォルト値)
ということになるようですね。
つまりポイントは`dos charset = CP932'というよりも、
`unix charset =UTF8'ということのようで。
試しに、
$ mkdir ~/.smb
$ sed '/^ unix charset/d' /etc/samba/smb.conf > ~/.smb/smb.conf
としてみても、文字化けがなくなることを確かめました。
Sambaサーバとして動作する際には/etc/samba/smb.confを読み、
クライアントとして動作する際には$HOME/.smb/smb.confを読む、
ということなんでしょうか。
libsmbclient 3.0.14a以降だと、たとえ$LANG=ja_JP.eucJPな環境でも
`unix charset = UTF8'じゃないとまずい、ということなんでしょうか。
--
Tsuge Akihide
|