И снова кодировки: при монтировании ресурсов вручную параметрами iocharset=koi8-r,ocdepage=cp866 - русские символы отображаются верно, при проспотре через миднайт и конкверор (smb://)- квадраты.
Вопрос, почему? Причём файлы с русскими именами закинутые мне в аплоад с линух машины ведут себя с точностью до наоборот . То есть через смб:// - нормально, а через монтирование -зябрами
В smbconf прописано следующее:
dos charset=866
unix charset = koi8-r
display charset = cp866
+Отмечено что:
unix charset = utf8 приводит в отму что: отображение через смб:// в конквероре не изменяется, а при монтировании с iocharset=koi8-r,ocdepage=cp866 - всё отображается также как и через смб://, что в принципе понятно. так как насколько я помню сам кде весь в юникоде.
------------------------------------------------
Подумал я подумал и вот что надумал:
в фаловой системе имена в кои8-р, конкверор т.к. сам юникодный перекодирунт имена и выводит их уже в юникоде. То есть теоретически, если бы локаль была юникодная кде б вообще этим не занимался. Тогда еслиб она была ср1251 - происходила бы перекодировка ср1251 > utf8 соответсвенно. Через доступ к сети через конкверрор используя протокол smb:// ресурсы сонтируются вообще без параметров, то есть в кодировке ср1251, конкверор естественно этого знать не может и выполняет установку koi8-r > utf8 вот и получается, что русские имена отображаются также как если бы мы просмотрели ср1251 страницу принудительно используя юникод. В миднайт коммандере поскольку кодировка консоли koi8-r имена файлов выглядят так, если бы мы просмотрели ср1251 страницу принудительно используя кои8-р.
Следовательно нам нужно чтоб клиент который используется конкверором и миднайтом производил прекодировку ср-1251 > koi8-r. А вот как этого добиться я так и не понял.
Указание
display charset = cp866 естесственно не влияет на отображение, это понятно из цитаты из мана:
display charset (G)
Specifies the charset that samba will use to print messages to stdout and stderr and SWAT will use. Should generally be the same as the unix charset.
Т.е этот параметр определяет кодировку используя которую самба общается с такими фишками как swat,webmin-samba etc.
______________________
Путём долгих поисков и стараний истина таки была найдена. Два варианта:
1.(только теоритически) Использовать в системе виндовую локаль.
2.100% работоспособный - использовать два конфига, один для клиента, второй - для сервера. Поскольку для клиента задать конфиг мы не можем, будем использовать другой конфиг файл для сервера а smb.conf -для клиента. В конфиге клиента не используем указание кодовой страницы и кодировки, а в конфиге сервера добавим
Код: Выделить всё
dos charset=866
unix charset = koi8-r
display charset = koi8-r
где koi8-r - ваша системная локаль. У меня остаётся только один вопрос: учитывая что самба запускается как самостоятельный демон, как прописать чтоб smbd всегда при загрузке стартовал с параметром, указывающим путь к конфигу.