FreeBSD 6.2, samba-3.0.23c_2,1, KDE-3.5.4
#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=
#smb.conf
# Charset settings
display charset = CP1251
unix charset = CP1251
dos charset = CP866
Суть в следующем. Захожу через самбу в расшаренную папку другого компа-WinXP, но вместо русских букв получаю квадратики.
Если с компа-WinXP зайти в мою расшаренную папку, то все русские буквы читабельны.
На сколько я понимаю опция «display charset» означает кодировку в которой самба показывает свои файлики другим клиентам. С этой опцие проблем нет.
Опция «dos charset» точно не знаю что означает, но наверное она нужна для работы с досовскими клиентами. Это не наш случай.
И опция «unix charset» это моя локаль.
Где я ошибся? Что я не учел?
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
у меня такое ощущение, что ты путаешь клиента с сервером, причём без зазрения совести. настройки сервера самбы — это настройки сервера, которые никак не влияют на то, как и что будет рисоваться на экране когда ты полезешь на другой комп.
а вот настроек клиента, которым ты «заходишь» я не вижу.
Во как! А где же клиент настраивается?
В man smbconf сказано что клиент берет некоторые настройки из smb.conf
Где-то это уже поднималось.
Я для лечения этого содавал /home/user/.smb/smb.conf c кодировками:
unix charset = utf8
display charset = utf8
dos charset = cp866
а какого клиента ты используешь? того который smbclient? будем считать, что я угадал…
заглянул я в свой smb.conf… пожалуй у тебя ошибка в том, надо писать не CP866, а просто 866. Насчёт CP1251 — не скажу, никогда её не использовал, мне кажется что её так и надо писать, но если не заработает с `dos charset = 866\′ ты попробуй ещё и `unix charset = 1251\′.
Так!
Как только собираемся использовать «гетерогенное» окружение.. Забываем про однобайтные кодировки. То есть cp1251,koi8r и пр — уходят в историю сразу. Используем utf8!!!
Почему так… А потому, что даже окошки используют «по умолчанию» с SMB/CIFS протоколом — utf8.
Набор рекомендаций:
* настраиваем NLS в файловых системах, дефолтной кодировкой — utf8;
* переводим locale — полностью на ru_RU.UTF-8;
* радуемся;
А теперь, что касается сути вопроса :)…
Если под «Захожу через самбу в расшаренную папку другого компа-WinXP» — имеется ввиду smbclient… То можно его запустить например так:
Правда для этого может понадобиться поддержка этой locale glibc… И поддержка шрифтов… И вообще — это оч плохой способ :)!!!!
Если речь идет о монтировании папок… То в опциях монтирования — меняем iocharset…
Если речь идет о GUI программке… Смотрим настройки программки.
P.S. Я FreeBSD, как и KDE видел только на картинке… Чего и вам рекомендую :).
По порядку.
Heavy, на мандриве с локалью utf8 я так и делал. Все пучком. Но на бсд у меня локаль 1251.
rgo, на всякий случай попробовал писать 1251 и 866. Тот же результат. К тому же во всех документациях пишется именно CP1251 и CP866.
Dmitry.Stolyarov, я бы рад перейти на локаль utf8, но FreeBSD на сегодняшний день не позволяет перевести консоль на мультибайтную кодировку. Только иксы. Этого не достаточно. Я же бывает и в консоли работаю, и скрипты запускаю, в частности архивацию файликов с русскими буковками в именах.
На мандриву возвращаться не хочется, полюбилась мне фря
> На мандриву возвращаться не хочется, полюбилась мне фря
Так это… Может стоит попробовать gentoo? Раз полюбились портежи :) ?
>Heavy, на мандриве с локалью utf8 я так и делал. Все пучком. Но на бсд у меня локаль 1251.
А пробовал изменять utf8 на cp1251?
Если б она тебе действительно полюбилась, ты бы не стал так издеваться над ней (ставить системную локаль СР1251).
Столярова не слушай: он гонит откровенную дезу и вкусовщину!
UTF8 идёт лесом (почему — тема отдельного обсуждения в флейме)!!!
Системная локаль никакого отношения к отображаемой Самбой (кстати, какой версии?) не имеет!
У меня на FreeBSD 6.2 с системной локалью KOI8-R и реальным зоопарком на клиентской стороне всё что нужно работает с следующими стоками определяющими кодировку: smb.conf
Ну не сказочник?!.
Предлагаю продемонстрировать истинность этого утверждения в действительности:
1. Тебе запрещается использовать указание однобайтных кодировок в конфиге Самбы!
2. Действительно зоопарк: т.е. начиная с вынь-95 и до высты.
Мне бы доставило немалое удовольствие зрелище просмотра в данном случае созданного системными средствами файла с русским названием из вынь-98… :)
при монтировании использую вот такую строчку в fstab
//guest@COMP/MEDIA /usr/home/user/media smbfs ro,noauto,-I192.168.170.3,-Ecp1251:cp866,-N 0 0
тогда русские буквы читаются