Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Кодировка samba win


Автор: lemniscate 4.12.2013, 06:46
Добрый день! Пожалуйста помогите решить проблему, ни как не могу добиться нормальной кодировки на файл сервере. Есть FreeBSD 7.0-RELEASE установлен samba-3.0.28,1. В каталоге заходят пользователи из под винды, сохраняют свои файлы. К серваку цепляюсь через putty и вижу что все файлы отображаются знаком вопроса. Начал копаться. 
Первое что сделал: 
Код

fs# setenv LANG ru_RU.CP1251
fs# setenv LC_ALL ru_RU.CP1251
fs# locale
LANG=ru_RU.CP1251
LC_CTYPE="ru_RU.CP1251"
LC_COLLATE="ru_RU.CP1251"
LC_TIME="ru_RU.CP1251"
LC_NUMERIC="ru_RU.CP1251"
LC_MONETARY="ru_RU.CP1251"
LC_MESSAGES="ru_RU.CP1251"
LC_ALL=ru_RU.CP1251


не помогло, вместо вопросов стали отображаться: 
п?пҐя│я┌я─я┐п╨я├п╦я▐ п©п╬ я└п╟п╧п╩ я│п╣я─п╡п╣я─я┐.docx
перекодировщик показал что это koi8-u, попробовал сделать koi8-u, а потом utf-8 тоже не помогло 

Вот содержимое каталогов keymaps
Код

fs# ls /usr/share/syscons/keymaps/ru*
/usr/share/syscons/keymaps/ru.cp1251.kbd        /usr/share/syscons/keymaps/ru.iso5.kbd          /usr/share/syscons/keymaps/ru.koi8-r.shift.kbd
/usr/share/syscons/keymaps/ru.cp866.kbd         /usr/share/syscons/keymaps/ru.koi8-r.kbd        /usr/share/syscons/keymaps/ru.koi8-r.win.kbd


и scrnmaps

Код

fs# ls /usr/share/syscons/scrnmaps/
armscii8-2haik8.scm     iso-8859-1_to_cp437.scm iso-8859-4_for_vga9.scm iso-8859-7_to_cp437.scm koi8-r2cp866.scm        koi8-u2cp866u.scm       us-ascii_to_cp437.scm   win2cpp866.scm


вроде все есть 

вот что говорит файл rc.conf о кодировке:
Код

fs# more /etc/rc.conf
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="win2cpp866"
keymap="ru.cp1251"
 

поправил файл login.conf : 
Код

fs# more /etc/login.conf
winrus|Russian Win Accounts:\
:charset=CP1251:\
:lang=ru_RU.CP1251:\
:tc=default:


вот вывод chpass:
Код

#Changing user information for root.
Login: root
Password: 
Uid [#]: 0
Gid [# or name]: 0
Change [month day year]:
Expire [month day year]:
Class: winrus
Home directory: /root
Shell: /bin/csh


Попробовал putty поковырять, думаю чем черт не шутит, но и там вроде все ок. 
Вообщем моих знаний уже не хватает.
как то давно на другом серваке проделал все тоже самое и кодировка отображалась нормально. Что происходит здесь понять вообще не могу. 
Пожалуйста подскажите куда еще копать, куда смотреть. 

Автор: krypt3r 4.12.2013, 13:39
Что-то вас понесло непонятно куда, зачем-то системную локаль начали трогать. Нафига? Ман-то пробовали читать по smb.conf? Встречались вам там параметры dos charset, unix charset, display charset?

Автор: smalcom 5.12.2013, 01:08
в putty кодировку не забыли выставить?

Автор: lemniscate 5.12.2013, 07:31
забыл написать что в smb.conf тоже ковырялся, сейчас там стоит вот так: 
Код

# Charset settings
   display charset = koi8-r
   unix charset = utf-8
   dos charset = cp866


параметры выставлял по всякому, после каждого раза заливай файл с русским названием. не помогло. 


Цитата(smalcom @  5.12.2013,  01:08 Найти цитируемый пост)
в putty кодировку не забыли выставить?

в putty тоже пробовал менять. Подключал моник к серваку, и там таже проблема. 

Автор: tzirechnoy 8.12.2013, 01:08
Цитата
п?пҐя│я┌я─я┐п╨я├п╦я▐ п©п╬ я└п╟п╧п╩ я│п╣я─п╡п╣я─я┐.docx
перекодировщик показал что это koi8-u, попробовал сделать koi8-u, а потом utf-8 тоже не помогло 


Это, очевидно, utf-8, показанная при кодировке терминала по-моему koi8.

Сделайте себе терминал в utf8, если уж сказали самбе писать в этой кодировке.

scrnmaps при putty нафиг не нужны, это для локальной консоли. Кодировку utf8 во-первых выберите в putty (Settings->Window->Translation->Remote character set) , во-вторых поставьте LANG='ru_RU.utf-8', и выкиьте все остальные LC_* (ну, LC_NUMERIC можно поставить в C), и проверьте, что кодировка ru_RU.utf8 системой поддержывается. Не знаю точно, как последнее во FreeBSD делается. Вроде, команда locale должна показывать какие-то ошыбки, если что-то не так. Возможно, потребуется как-то запустить mklocale, но вполне вероятно, что в новых системах всё и так будет доступно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)