[samba-jp:22005] Re: 【質問】AIXにおけるsambaの文字コード設定について
SATOH Fumiyasu
fumiyas @ osstech.jp
2013年 6月 10日 (月) 14:37:10 JST
さとうふみやす @ OSSTech です。
At Mon, 3 Jun 2013 14:50:36 +0900,
Masataka Taguchi wrote:
> 現在下記バージョンのAIXおよびsamba(expansion packに同梱)を使用しておりま
> す。
>
> AIX:7100-01-05-1228(oslevel -sの出力結果)
> samba.base 3.3.12.0
> bos.iconv.com 7.1.1.15
Samba 3.3 はもう本家で保守されていませんし、IBM は
extension pack のパッケージを保守する気がないようなので、
お薦めできないです。
> ここで、sambaの文字コードをデフォルトの「UTF-8」から「SJIS」へ変換しようと
> 思い、
> /usr/lib/smb.comfファイルの[global]セクションに下記3行を追加しました。
>
> unix charset = IBM-943
> dos charset = IBM-943
> display charset = IBM-943
>
> その後sambaを再起動したところ、下記のワーニングが出力されました。
>
> init_iconv: Conversion from UTF-16LE to IBM-943 not supported
> init_iconv: Attempting to replace with conversion from UTF-16LE to ASCII
extension pack の samba.base パッケージは文字エンコーディングの
変換に AIX の iconv(3) を利用しますが、こいつが「UTF-16LE」に
対応していないためです。「UTF-16le」には対応しています。
どういうことかというと、
* AIX の iconv(3) は文字エンコーディング指定の大文字・小文字を
区別する。
* AIX の iconv(3) は「UTF-16le」は受け付ける。「UTF-16LE」は
受け付けない。
* Samba は iconv(3) を利用して UTF-16LE ⇔各種文字エンコーディング
変換を行なう。iconv(3) を呼び出すときに「UTF-16LE」を指定する。
> ※IBM-943部分を「CP932」に変えても状況は変わりませんでした。
AIX の iconv(3) は CP932 に対応していません。
対応するエンコーディング名は `iconv -l` をどうぞ。
> この状態でWINDOWS(SJIS)からファイル作成すると、ファイル名が文字化けしてし
> まいます。
今時の Windows は CIFS で SJIS (CP932) は使いませんよ。
> こちらの原因につきまして、どのようなことが考えられますでしょうか。(現在の
> sambaのバージョンではSJIS変換はサポートされていないのでしょうか)
解決案としては、以下かなぁ。
* AIX のロケールを日本語 UTF-8 (JA_JP) にする。
smb.conf で unix charset, dos charset, display charset は指定しない。
* samba.base パッケージの smbd をバイナリーエディタで開いて
「UTF-16LE」を「UTF-16le」に置換する。
* 「UTF-16LE」対応の GNU libiconv をビルド & インストールして
Samba も自前でビルド & インストールする。
* うち (OSSTech) の Samba を購入する。:-)
--
-- Name: SATOH Fumiyasu @ OSS Technology Corp. (fumiyas @ osstech co jp)
-- Business Home: http://www.OSSTech.co.jp/
-- GitHub Home: https://GitHub.com/fumiyas/
-- PGP Fingerprint: BBE1 A1C9 525A 292E 6729 CDEC ADC2 9DCA 5E1C CBCA
samba-jp メーリングリストの案内