Vitruvian Penguin
knoppix

[knoppix:5266] Re: KNOPPIX 3.8.2( -20050606版)でsamba ネットワークの2 バイト文字が化ける

Date: Fri, 17 Jun 2005 09:51:50 +0900
User-agent: Mutt/1.5.9i
柘植です。

うちでも$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  
<Prev in Thread] Current Thread [Next in Thread>