StrangeAttractor
@StrangeAttractor

Как настроить кодировку в Samba под Cygwin?

Осторожно, изврат. Фанатам Microsoft не читать во избежание "разрыва шаблона" :-)

Пытаюсь заставить работать самбовский smbclient (3.0.7) на Windows 7 (качал здесь).

Первая проблема, с которой столкнулся - ругается что не может найти конфиг в /etc/гдеонтамнепомню. Решил пока установкой полноценного cygwin и запуска через его терминал (соответственно создав в надлежащем месте файл конфига), хотя говорят можно обойтись и без этого.

Вторая проблема, решение которой, собственно, ищется - вопрос кодировок. Если не писанит в конфиге ничего о кодировках, то вместо руских букв в названиях файлов на шарах, соответственно, каша.

А ежели написать хоть что-нибудь вместо листинга файлов валятся строки типа

init_iconv: Conversion from UCS-2LE to cp866 not supported
init_iconv: Attempting to replace with conversion from UCS-2LE to ASCII
init_iconv: Conversion from UTF8 to cp866 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from ASCII to cp866 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from cp866 to UCS-2LE not supported
init_iconv: Attempting to replace with conversion from ASCII to UCS-2LE
init_iconv: Conversion from cp866 to UTF8 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from cp866 to ASCII not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from cp866 to UTF8 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII
init_iconv: Conversion from UTF8 to cp866 not supported
init_iconv: Attempting to replace with conversion from ASCII to ASCII


И как бы я ни менял кодировки в конфиге (разные комбинации из вариаций на тему UTF8, utf-8, cp866, cp1251, cp1250, ASCII, ISO-8859-5 и т.п.) результат - только ругань типа приведённой выше.

Если же ничего такого не прописывать вообще ошибок нет, но имена файлов корявые и если скормить их декодеру Лебедева - он успешно их расшифровывает (правда теряет первую букву) и пишет "7-bit ASCII → ISO-8859-5". locale charmap в консоли выдаёт UTF-8. Винда английская, в качестве ANSI-кодировки для не поддерживающих Unicode программ выбрана CP1250. В качестве сервера выступает Linux с Samba 3.6.6, на нормальных виндовых клиентах, соответственно, всё нормально.

Ещё интересный нюанс в том, что у нас на Samba-шарах лежат файлы не только английскими и русскими буквами в именах, но и с центральноевропейскими (ž, š и т.д., т.н. Latin2, в восьмибитных кодировках это DOS/ASCII CP852, Windows/ANSI CP1250, ISO 8859-2) т.е. нельзя однозначно выбрать одну DOS/Windows/ISO кодировку.

В Сети полно вопросов о "init_iconv: Conversion from ... to ... not supported" в контексте Samba, но ни одного реального решения найти не удалось.

Вопрос, соответственно, что писать в smb.conf в dos charset, unix charset, display charset и т.п. (или ещё где) чтобы это пофиксить.

UPDATE: Нащупал настройки, которые не дают ошибок, но тексты при них всё-равно кривые (хотя и по-другому): unix charset = UTF8, display charset = UCS-2LE.
  • Вопрос задан
  • 2934 просмотра
Решения вопроса 1
StrangeAttractor
@StrangeAttractor Автор вопроса
Путём перебора различных комбинаций вариантов найден ответ: вот такой smb.conf у меня сработал:

[global]
workgroup = WORKGROUP
unix charset = UTF8
dos charset = UCS-2LE
display charset = UTF8


Формат написания путей при этом - стандартный виндровый типа \\server\share только количество бэкслэшей умножаем надва: \\\\server\\share
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы