URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 41104
[ Назад ]

Исходное сообщение
"samba3 - проблема с именами файлов"

Отправлено glex , 29-Фев-04 12:46 
Есть Fedora Core 1 + Samba3. Локаль - koi8-r. Клиент - w2k. В конфиге самбы прописано:
dos charset = cp866
unix charset = koi8-r
display charset = koi8-r
Все работает OK (русские имена файлов отображаются правильно с обоих сторон - и на клиенте и на сервере), пока в имени файла не встретится символ '№' (номер). В этом случае имя превращается целиком в кашу. В чем может быть косяк?

Содержание

Сообщения в этом обсуждении
"samba3 - проблема с именами файлов"
Отправлено Bushi , 29-Фев-04 18:10 
>Есть Fedora Core 1 + Samba3. Локаль - koi8-r. Клиент - w2k.
>В конфиге самбы прописано:
>dos charset = cp866
>unix charset = koi8-r
>display charset = koi8-r
>Все работает OK (русские имена файлов отображаются правильно с обоих сторон -
>и на клиенте и на сервере), пока в имени файла не
>встретится символ '№' (номер). В этом случае имя превращается целиком в
>кашу. В чем может быть косяк?

Косяк в том, что в кодировке koi8-r нет вообще символа номера. Выхода два:

1. перейти, например, на юникод.
2. подправить исходники libiconv на предмет замены символа номера на другой при переконвертации, например, на #. Я на freebsd так и сделал и все работало.


"samba3 - проблема с именами файлов"
Отправлено Hak , 29-Фев-04 22:06 
>>Есть Fedora Core 1 + Samba3. Локаль - koi8-r. Клиент - w2k.
>>В конфиге самбы прописано:
>>dos charset = cp866
>>unix charset = koi8-r
>>display charset = koi8-r
>>Все работает OK (русские имена файлов отображаются правильно с обоих сторон -
>>и на клиенте и на сервере), пока в имени файла не
>>встретится символ '№' (номер). В этом случае имя превращается целиком в
>>кашу. В чем может быть косяк?
>
>Косяк в том, что в кодировке koi8-r нет вообще символа номера. Выхода
>два:
>
>1. перейти, например, на юникод.
>2. подправить исходники libiconv на предмет замены символа номера на другой при
>переконвертации, например, на #. Я на freebsd так и сделал и
>все работало.
поподробней оба пункта можно ??? а то очень надо ....

"samba3 - проблема с именами файлов"
Отправлено glex , 01-Мрт-04 05:01 
>>>Есть Fedora Core 1 + Samba3. Локаль - koi8-r. Клиент - w2k.
>>>В конфиге самбы прописано:
>>>dos charset = cp866
>>>unix charset = koi8-r
>>>display charset = koi8-r
>>>Все работает OK (русские имена файлов отображаются правильно с обоих сторон -
>>>и на клиенте и на сервере), пока в имени файла не
>>>встретится символ '№' (номер). В этом случае имя превращается целиком в
>>>кашу. В чем может быть косяк?
>>
>>Косяк в том, что в кодировке koi8-r нет вообще символа номера. Выхода
>>два:
>>
>>1. перейти, например, на юникод.
>>2. подправить исходники libiconv на предмет замены символа номера на другой при
>>переконвертации, например, на #. Я на freebsd так и сделал и
>>все работало.

А кто чего знает про кодировку ISO-IR-111?
Я поставил unix charset = ISO-IR-111 и всё заработало нормально. Символ НОМЕР в UNIX'е просто отображается какой-то закорючкой, а в остальном всё нормально.


"samba3 - проблема с именами файлов"
Отправлено _Wolf_ , 09-Мрт-04 14:41 
>>>>Есть Fedora Core 1 + Samba3. Локаль - koi8-r. Клиент - w2k.
>>>>В конфиге самбы прописано:
>>>>dos charset = cp866
>>>>unix charset = koi8-r
>>>>display charset = koi8-r
>>>>Все работает OK (русские имена файлов отображаются правильно с обоих сторон -
>>>>и на клиенте и на сервере), пока в имени файла не
>>>>встретится символ '№' (номер). В этом случае имя превращается целиком в
>>>>кашу. В чем может быть косяк?
>>>
>>>Косяк в том, что в кодировке koi8-r нет вообще символа номера. Выхода
>>>два:
>>>
>>>1. перейти, например, на юникод.
>>>2. подправить исходники libiconv на предмет замены символа номера на другой при
>>>переконвертации, например, на #. Я на freebsd так и сделал и
>>>все работало.
>
>А кто чего знает про кодировку ISO-IR-111?
>Я поставил unix charset = ISO-IR-111 и всё заработало нормально. Символ НОМЕР
>в UNIX'е просто отображается какой-то закорючкой, а в остальном всё нормально.
>


А если я уже очень долго сижу на koi8-r и вдруг переду на другую кодировку, кто-нибудь скажет какие проблемы меня ожидают....


"samba3 - проблема с именами файлов"
Отправлено glex , 09-Мрт-04 18:06 
>>>>>Есть Fedora Core 1 + Samba3. Локаль - koi8-r. Клиент - w2k.
>>>>>В конфиге самбы прописано:
>>>>>dos charset = cp866
>>>>>unix charset = koi8-r
>>>>>display charset = koi8-r
>>>>>Все работает OK (русские имена файлов отображаются правильно с обоих сторон -
>>>>>и на клиенте и на сервере), пока в имени файла не
>>>>>встретится символ '№' (номер). В этом случае имя превращается целиком в
>>>>>кашу. В чем может быть косяк?
>>>>
>>>>Косяк в том, что в кодировке koi8-r нет вообще символа номера. Выхода
>>>>два:
>>>>
>>>>1. перейти, например, на юникод.
>>>>2. подправить исходники libiconv на предмет замены символа номера на другой при
>>>>переконвертации, например, на #. Я на freebsd так и сделал и
>>>>все работало.
>>
>>А кто чего знает про кодировку ISO-IR-111?
>>Я поставил unix charset = ISO-IR-111 и всё заработало нормально. Символ НОМЕР
>>в UNIX'е просто отображается какой-то закорючкой, а в остальном всё нормально.
>>
>
>
>А если я уже очень долго сижу на koi8-r и вдруг переду
>на другую кодировку, кто-нибудь скажет какие проблемы меня ожидают....

Вполне конкретные. Такие символы, которые есть в одной кодировке (cp866) и отсутствуют в другой (koi8-r), обычно чем-то заменяются. Например символ НОМЕР в именах файлов в Линухе виделся как КОПИРАЙТ, когда у меня была samba-2.2 с koi8-r. А в samba-3 с ISO-IR-111 он заменяется на какую-то каракулю рамочную. В винде конечно всё отлично, но можно предположить, что если щас вместо samba-2.2 поставить Samba-3, то прощайте номерочки ... С остальными символами проблем пока замечено не было.


"samba3 - проблема с именами файлов"
Отправлено Bushi , 01-Мрт-04 13:54 
>поподробней оба пункта можно ??? а то очень надо ....


1. просто поставить локаль например utf-8 или cp1251

2. Файл libiconv - */lib/koi8_r.h, примерно такой патч

8<------------------------------------------------------
--- koi8_r.h.old 2003-09-02 17:54:31.838244000 +0400
+++ koi8_r.h 2003-09-07 13:56:31.498907000 +0400
@@ -139,6 +139,8 @@
c = koi8_r_page00[wc-0x00a0];
else if (wc >= 0x0400 && wc < 0x0458)
c = koi8_r_page04[wc-0x0400];
+ else if (wc == 0x2116)
+ c = 0x23;
else if (wc >= 0x2218 && wc < 0x2268)
c = koi8_r_page22[wc-0x2218];
else if (wc >= 0x2320 && wc < 0x2328)
8<------------------------------------------------------

пересобрать libiconv и затем samba


"samba3 - проблема с именами файлов"
Отправлено Hak , 03-Мрт-04 15:31 
работает 2й вариант ... а какой файл необходимо поправить что бы выполнять обратное преобразование ... ???