Page 1 of 2 12 LastLast
Results 1 to 15 of 16

Thread: Kодировка Windows-1251 (iconv)

  1. #1

    Question Kодировка Windows-1251 (iconv)

    Мне необходимо найти некий текст на странице и сохранить его в файл используя команду вроде этой:
    wget -q -O- http://name.ru | grep "Искомый текст" >> 1.txt

    Проблема в том что страница в кодировке Windows-1251 и в файл 1.txt ничего не записывается, хотя "искомый тест" есть на странице.

    Если выполнить команду wget -q -O- http://name.ru, то весь русский текст выглядит так :
    Code:
    ▒▒▒▒▒▒▒▒

  2. #2
    Join Date
    Oct 2009
    Posts
    529
    Blog Entries
    1
    Quote Originally Posted by idShura View Post
    Проблема в том что страница в кодировке Windows-1251
    Используйте iconv
    $ wget 'http://wl500g.info/showthread.php?30703&langid=3' -q -O- | iconv -f cp1251 | grep "русский текст"

  3. #3
    Вариант с iconv не совсем подходит потому что на wl500gpv2 у меня не хватает места для ее установки. Может есть какой-нибудь другой способ?

  4. #4
    Quote Originally Posted by idShura View Post
    Может есть какой-нибудь другой способ?
    Какого-нибудь другого способа без сторонних утилит нет. Поэтому для решения вашей задачи вам придётся:

    1. погуглить какие в линуксе есть средства перекодирования текста,
    2. оценить влезет ли скомпилированный\скриптованный вариант в куцый флеш wl500gpv2,
    3. реализовать выбранный вариант самостоятельно или с чьей-то помощью.

  5. #5

    Не хватает места для установки программ

    Не получается установить iconv из-за нехватки места (wl500gpv2).
    Может быть можно подключить к роутеру флешку и установить iconv на нее?

    Code:
    Filesystem                Size      Used Available Use% Mounted on
    rootfs           4.5M     4.5M           0 100%   /
    /dev/root      4.5M     4.5M           0 100%   /
    devfs           100.0K   4.0K           96.0K    4% /dev
    tmpfs           14.2M    280.0K        13.9M   2% /tmp

  6. #6
    Join Date
    Oct 2009
    Posts
    529
    Blog Entries
    1
    Quote Originally Posted by idShura View Post
    Может быть можно подключить к роутеру флешку и установить iconv на нее?
    Конечно можно

  7. #7
    Для этого нужно переустанавливать прошивку роутера? Сейчас у меня стоит прошивка 1.9.2.7-rtn-r4330, меня все устраивает. Есть только необходимость установки iconv. Хотелось бы только воткнуть в него флешку, сказать системе что там будут храниться программы..., а как это сделать я не знаю. Буду очень благодарен если вы подскажете как мне это можно сделать.

  8. #8
    Join Date
    Oct 2009
    Posts
    529
    Blog Entries
    1
    Quote Originally Posted by idShura View Post
    Для этого нужно переустанавливать прошивку роутера? Сейчас у меня стоит прошивка 1.9.2.7-rtn-r4330
    нет, не нужно.
    Quote Originally Posted by idShura View Post
    воткнуть в него флешку, сказать системе что там будут храниться программы...
    Например, вот так
    или читайте форум

  9. #9
    Если запускаю
    Code:
    wget 'http://wl500g.info/showthread.php?30703&langid=3' -q -O- | iconv -f cp1251 | grep "русский текст"
    из командной строки, то все работает, а если запускаю из crontab то нет. Перепробовал много разных вариантов и понял что не корректно работает именно iconv (даже если преобразую файл из одной кодировки в другую).

  10. #10
    Прописывайте полный путь до iconv.

  11. #11
    Прописывал /opt/bin/iconv - не помогло

  12. #12
    Действительно не помогло. Следующая подсказка: iconv -f CHARSET1 -t CHARSET2 перекодирует входную строку из кодировки CHARSET1 в кодировку CHARSET2. Пока вы работаете в терминале, для вашего сеанса определена переменная среды LANG, подсказывающая для iconv выходную кодировку. Откуда iconv может узнать выходную кодировку, работая в составе cron-задания?

  13. #13
    Спасибо, буду пробовать. Сделал по другому: Установил утилиту recode

    Code:
    wget 'http://name.ru' -q -O- | recode windows1251..utf8 | grep "Текст" > /test
    Quote Originally Posted by ryzhov_al View Post
    Действительно не помогло. Следующая подсказка: iconv -f CHARSET1 -t CHARSET2 перекодирует входную строку из кодировки CHARSET1 в кодировку CHARSET2. Пока вы работаете в терминале, для вашего сеанса определена переменная среды LANG, подсказывающая для iconv выходную кодировку. Откуда iconv может узнать выходную кодировку, работая в составе cron-задания?
    Пробовал уже, не помогло
    Last edited by Omega; 11-01-2013 at 23:55. Reason: 2 posts merged

  14. #14
    Quote Originally Posted by idShura View Post
    Пробовал уже, не помогло
    Не верю, т.к. проверял сам, такой вариант в cron'е работает:
    Code:
    wget 'http://wl500g.info/showthread.php?30703&langid=3' -q -O- | iconv -f cp1251 -t UTF-8 | grep "русский текст"

  15. #15
    Quote Originally Posted by ryzhov_al View Post
    Не верю, т.к. проверял сам, такой вариант в cron'е работает:
    Code:
    wget 'http://wl500g.info/showthread.php?30703&langid=3' -q -O- | iconv -f cp1251 -t UTF-8 | grep "русский текст"
    Проверил еще раз, действительно работает...

    p/s/ когда я пробовал различные варианты я установил локаль в начале скрипта и забыл про нее. Когда я пробовал твой вариант стояла неправильная локаль. Прошу прощенья что всех запутал, но зато теперь я знаю два рабочих способа как сделать то что я хотел. Всем кто помогал спасибо!

Page 1 of 2 12 LastLast

Similar Threads

  1. Установка Windows 7 по сети с помощью роутера
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 5
    Last Post: 22-10-2012, 22:25
  2. Replies: 5
    Last Post: 19-08-2010, 17:03
  3. Wl500 Cam Viewer, a windows client for the ActiveX stream....
    By max2950 in forum WL-500g Custom Development
    Replies: 3
    Last Post: 08-08-2005, 01:24

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •