LINUX.ORG.RU

Это подпольный раздел ЛОР'а. О нём не принято говорить, мальчиша.

anonymous
()

Огнелис кодировку определять не умеет

Казалось бы, ничего сложного в этом нет. Нужно просто определить наиболее часто повторяющиеся конструкции в языке и на основе этого определить кодировку.
Если совсем грубо, то возьмём короткие слова:

 а : (CP1251) 32 224 32 : (KOI8) 32 193 32
 и : (CP1251) 32 232 32 : (KOI8) 32 201 32
 в : (CP1251) 32 226 32 : (KOI8) 32 215 32
 я : (CP1251) 32 255 32 : (KOI8) 32 209 32
Нашли соответствующую последовательность, сразу определили кодировку и язык. Нужна, конечно база для многих языков.

CYB3R ★★★★★
()
Ответ на: комментарий от MiniRoboDancer

А я уже и хотел. Потом решил оформить в виде аддона, но в итоге забил, начав читать о настройке профиля FF для разработки аддона.

CYB3R ★★★★★
()
Последнее исправление: CYB3R (всего исправлений: 1)
#!/bin/bash

function filter() {
  cat dump.txt |
    sed -n '/^References$/,$p' |
    sed -n 's|.*\(http://www.linux.org.ru/books/.*\)|\1|p' |
    awk '
      /.html$/{print;next}
      /\/$/{print;next}
      {k=split($0,M,"/"); if(split(M[k],T,".")==1) {print;next}}
    '
}

function item() {
  LANG=C lynx -dump "$i" >dump.txt
  enc=$(cat dump.txt | enca -m -L russian -)

  echo "$enc $i"
  echo "$i" >>list.full
  echo "$i" >>list.enc.$enc

  filter $i |
  while read j; do
    if [ "$(grep $j list.full | wc -l)" == "0" ]; then
      echo "$j" >>list.txt
    fi
  done
}

rm -rf list.*
echo "http://www.linux.org.ru/books/" >list.txt

while [ -f list.txt ]; do
  mv list.txt list.tmp
  cat list.tmp |
  while read i; do
    item "$i"
  done
done
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.