Автор Тема: Русские символы  (Прочитано 7855 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн frg

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
Русские символы
« : 22 Марта 2001, 08:09:10 »
У меня есть .pl файлик, который просматривает мой домашний каталог и выводит список файлов по указанному условию (вещь очень распространенная). Проблемма заключается в том, что если имя каталога или имя файла задано русскими буквами, то ссылка не работает.
Примерчик:

Музыка на WEB


Музыка на WEB






Первая и вторая ссылки работают, а третья нет.
Может быть нужно перекодировать русские буквы во что-то другое, или еще что-то..?
frg

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Русские символы
« Ответ #1 : 22 Марта 2001, 10:32:56 »
А как насчет того, чтоб при закачке в этот каталог файлов их имена падали бы в файлик (типа индекса каталога) в котором они пронумерованы, а потом бы не рылся по каталогу, а читал бы файлик, да выписывал оттуда ссылки (по номеру файла).

файл:
1 //frg/MUSIC\\alsu!\\0001.MP3
2 //frg/MUSIC\\Raznoe\\THE BEATLES - YESTERDAY.MP3
3 //frg/MUSIC\\Raznoe\\Жин-жин-Снегом Стать.mp3

Реально фалы назывались бы 1.mp3 2.mp3 ...

потом split\'ом выковыривай имена и их индексы.

IC\\alsu!\\0001.MP3

IC\\Raznoe\\THEBEATLES-YESTERDAY.MP3

IC\\Raznoe\\Жин-жин-СнегомСтать.mp3


а если кто хочет скачать, сделай форму и подпихивай им вместо 1.mp3 - //frg/MUSIC\\alsu!\\0001.MP3 ...

Ну или как-нибудь еще...:-)
Просто это то, что первое в голову пришло. А ежели почесать репу, мож еще чего придумаешь.
Между прочим, в каталоге у NAS\'а стстьи лежат не так как они назывались до того (у авторов). Насколько я понимаю им насильно приписывается какое-то имя. Ежели не так, NAS, поправь.
С наилучшими пожеланиями. LODEVAR

  • Гость
Русские символы
« Ответ #2 : 22 Марта 2001, 12:46:49 »
Цитировать
lodevar (22-03-2001 10:32):
Между прочим, в каталоге у NAS\'а стстьи лежат не так как они назывались до того (у авторов). Насколько я понимаю им насильно приписывается какое-то имя. Ежели не так, NAS, поправь.
А у меня статьи вообще в MySQL хранятся.

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Русские символы
« Ответ #3 : 22 Марта 2001, 13:07:46 »
Цитировать
NAS (22-03-2001 12:46):
А у меня статьи вообще в MySQL хранятся.

Вот-вот, frg, не дело это по диску чесать, когда хочешь страничку сгенерить. Хорошо, когда там не много файлов, а когда там несколько сот :-(
Умереть с тоски можно. ;-)
С наилучшими пожеланиями. LODEVAR

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Русские символы
« Ответ #4 : 22 Марта 2001, 15:17:16 »
Цитировать
NAS (22-03-2001 12:46):
А у меня статьи вообще в MySQL хранятся.

А по-подробнее... Ссылка на статью хранится, а сама статья где-то в html\'е, или весь текст в базе?
С наилучшими пожеланиями. LODEVAR

  • Гость
Русские символы
« Ответ #5 : 22 Марта 2001, 16:38:53 »
Всё в базе. Ссылка, анонс, статья, кол-во прочтений, автор и т.д.

Оффлайн frg

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
Русские символы
« Ответ #6 : 23 Марта 2001, 08:27:20 »
Уважаемые NAS и LODEVAR! Ну а если хочется прочесать дикс и сгенерировать страничку.. И там не только *.mp3 но и *.doc, *.xls и всякая другая лабуда.. Я же говорю, что наверное это уже кто-то придумал и без меня. У меня идея заключается в том, чтобы создать в intranet WebServer где каждому зарегистрированному useru будет отводиться место на диске в его личном домашнем каталоге, куда он будет заливать столько информации, сколько ему нужно. (что-то типа хостинга..). Проблемма в том, что *.doc, *.xls файлы user-ы любят создавать с длинными русскими именами. Вот и вся суть проблеммы..
frg

  • Гость
Русские символы
« Ответ #7 : 23 Марта 2001, 22:18:45 »
Совет:
 Попробуй поставь кавычки ТИПА - " и слеши в другую сторону и всё будет ОК }>

Оффлайн frg

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
Русские символы
« Ответ #8 : 26 Марта 2001, 06:39:55 »
Уважаемый Alex_k!
Если бы все было так просто.. Кавычки помогают в том случае, если у тебя вместо пробелов в длинных именах не стоит % 20  и работает только с латинскими символами. А если встречаются русские символы, выдается сообщение об ошибке..
frg

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Русские символы
« Ответ #9 : 26 Марта 2001, 10:43:49 »
А какой у тебя сервер и под какую ось?
С наилучшими пожеланиями. LODEVAR

Оффлайн frg

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
Русские символы
« Ответ #10 : 27 Марта 2001, 05:54:26 »
Apache/1.3.6 (Win32)
OS Windows 98
frg

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Русские символы
« Ответ #11 : 27 Марта 2001, 13:30:56 »
А IIS не пробовал?

А еще посмотри http://uwg.boom.ru/comp/unix/apache/apache_r/all.html
С наилучшими пожеланиями. LODEVAR

Оффлайн frg

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
Русские символы
« Ответ #12 : 28 Марта 2001, 08:46:49 »
Я тут набрел на очень простой транслятор

#!/usr/local/bin/perl

print "\\"Content-Type: text/plain \\"

";
print "";

   $dos=" Ўў?¤?с¦§ЁcЄ<¬-RЇабвгдежзийклмноп??\'?":р++?%??\'\'""--?T?>????";
   $win="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";

$in_tab=$dos;
$out_tab=$win;

$file=&trans($file);

   sub trans
   {  $instr= $_[0];
      $outstr="";

      for ($i=0; $i        {  $symb=substr($instr, $i, 1);
           $pos=index($in_tab, $symb);
           if ($pos>=0)
             {  $newsymb=substr($out_tab, $pos, 1);
                $outstr.=$newsymb;
             }
           else
             {  $outstr.=$symb;
             }
        }
      return ($outstr);
   }

print "";
В переменную $file подставляю имя файла.
Я думал, что разница в кодировках dos - windows. Но это не так. Видимо нужно кодировать типа % 219 % 221 и т.д.
Незнаю, может я и не прав..
А в error.log пишет
[Wed Mar 28 10:00:35 2001] [error] [client 192.168.1.23] File does not exist: f:
/www/users/frg/-Ф-+-А-¦-¦-В-+-А-Г -Ъ-Г-А-¦-_-+-Б-¦-+-¦ -в-н-ж1.doc

IIS я не пробовал.
frg

Оффлайн lodevar

  • Сеньор-Помидор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 757
  • +0/-0
  • 2
    • Просмотр профиля
    • http://lodevar.hut.ru
Русские символы
« Ответ #13 : 28 Марта 2001, 08:59:54 »
А апач русский? Если русский, то приведенная мной выше ссылка должна подсобить ;-)
Если нет, качай русский.
С наилучшими пожеланиями. LODEVAR

Оффлайн frg

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 17
  • +0/-0
  • 0
    • Просмотр профиля
Русские символы
« Ответ #14 : 30 Марта 2001, 12:26:43 »
Я скачал новую настройку для Apache версия 1.3.19. Не знаю что я сделал неправильно, я добавил в apache\\conf\\httpd.conf строки
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866        .cp866  
AddCharset ISO-8859-5   .iso-ru
AddCharset KOI8-R       .koi8-r
После этого мой Apache загнулся. А когда я это убрал, то он обратно заработал. Скажите, в чем проблема? Может быть нужно еще что-то отконфигурировать. Или версия apache.exe не подходит, или я доку невнимательно читал..
frg

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28