щаз! Вы сами видите, что она cp866.Насчёт кодировки не знаю, но, вроде, из zip'a можно выудить информацию о системе, в которой был создан файл и, соответственно, предположить кодировку, например, для XP - UTF-16LE.
Цикл «Переходим на Ubuntu вместе»
нет такого слова "не вышло". Показывайте как пробовали, или прямо скажите -- не осилил.
$ echo "¥ªáâ®¢ë© ¤®ªã¬¥â" | iconv -c -f UTF16LE -t 866
На выходе - пусто.
щаз! Вы сами видите, что она cp866.[/quote][quote="-=Serj=-⇓"]Насчёт кодировки не знаю, но, вроде, из zip'a можно выудить информацию о системе, в которой был создан файл и, соответственно, предположить кодировку, например, для XP - UTF-16LE.
Откуда видно, что она cp866?
echo "¥ªáâ®¢ë© ¤®ªã¬¥â" | iconv -c -f UTF16LE -t 866
На выходе - пусто.
ещё-бы! Потому-что эта последовательность == юникод.
Hint: попробуйте hexdump -C
Откуда видно, что она cp866?
из вашего поста:
decode('866')
(я-то просто тупо по опыту знаю, что маздай до сих пор в 866 работает)
PS:
iconv -c -f UTF16LE -t 866
--from это ОТКУДА
--to это КУДА
при чём тут это ваше 16LE? Забудьте. Всё проще. В маздае 866, у вас UTF-8. И да, -t можно не писать, она сама догадается.
(я-то просто тупо по опыту знаю, что маздай до сих пор в 866 работает)
Дык, вопрос стоял - как автоматически определить кодировку пожатых файлов - Цикл «Переходим на Ubuntu вместе»
при чём тут это ваше 16LE?
Отсюда - http://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4
В Microsoft Windows NT и основанных на ней системах Windows 2000 и Windows XP в основном используется форма UTF-16LE. В UNIX-подобных операционных системах GNU/Linux, BSD и Mac OS X принята форма UTF-8 для файлов и UTF-32 или UTF-8 для обработки символов в оперативной памяти.
Дык, вопрос стоял - как автоматически определить кодировку пожатых файлов - Цикл «Переходим на Ubuntu вместе»
разве имелись ввиду не ИМЕНА файлов? Вот что пишет автор этого поста:
вот файл сделанный в виндовс хр средствами самой хр...
покажите как мне получить оригинальное имя файла
Отсюда - http://ru.wikipedia.org
лучше-бы вы туда не ходили... Или вы забыли, как я их называю? Или забыли за что?
В Microsoft Windows NT и основанных на ней системах Windows 2000 и Windows XP в основном используется форма UTF-16LE.
Это так в рекламном буклете написано. IRL ежели-бы это было правдой, ты мысы потеряла-бы САМОЕ ЦЕННОЕ -- совместимость с тоннами старого быдлокода с потерянными исходниками. Потому это "в основном" следует читать как "имеются куча костылей для NIH-unicode в самых неожиданных местах".
В UNIX-подобных операционных системах GNU/Linux, BSD и Mac OS X принята форма UTF-8 для файлов и UTF-32 или UTF-8 для обработки символов в оперативной памяти.
мда... Как всегда.
разве имелись ввиду не ИМЕНА файлов?
Хорошо, тогда так: "как автоматически определить кодировку имён пожатых файлов?"
Это так в рекламном буклете написано. IRL ежели-бы это было правдой, ты мысы потеряла-бы САМОЕ ЦЕННОЕ -- совместимость с тоннами старого быдлокода с потерянными исходниками. Потому это "в основном" следует читать как "имеются куча костылей для NIH-unicode в самых неожиданных местах".
Ясно :)
Хорошо, тогда так: "как автоматически определить кодировку имён пожатых файлов?"
дык а общего решения таки и нет... А вы думаете, почему его ещё в СПО не реализовали?
Общее решение -- UTF-8, но некоторых производителей ОС это не волнует. Им вообще наплевать на проблемы нацменов.
Дык, вопрос стоял - как автоматически определить кодировку пожатых файлов
$ ls -l *.txt | enca
Universal transformation format 8 bits; UTF-8
Ну, почти.
Короче, вот вам универсальный unzipper :D
#!/usr/bin/env python3
#_*_ coding: utf-8 _*_
import sys
import zipfile
import os
if len(sys.argv) < 2:
sys.stderr.write('Usage: %s <archive file>\n' % sys.argv[0])
raise SystemExit(1)
arc_name = sys.argv[1]
if not zipfile.is_zipfile(arc_name):
sys.stderr.write('Error!. %s is not valid zip-file...' % arc_name)
raise SystemExit(1)
with zipfile.ZipFile(arc_name) as z:
for f in z.namelist():
z.extract(f)
os.rename(f, f.encode('cp437').decode('866').replace('\x00', ''))
при чём тут это ваше 16LE?
Я понял, откуда взялись эти дополнительные кодировки. Проблема в DE менеджере архивов (в моём случае file-roller), видимо, он пытается угадать кодировку, но неудачно...
ЗЫ. Кстати, оба архива и Харитон'a, и BWR'a у меня прекрасно распаковались unzip'ом.
Короче, вот вам универсальный unzipper
у него есть фатальный недостаток: только по-русски.
кстати неправильный unzip. Мой выдал Ъ имена, как оно и было.Кстати, оба архива и Харитон'a, и BWR'a у меня прекрасно распаковались unzip'ом.
Так, правда пробуем ubuntu. Как насчет firewall? Есть штатные средства или сделать так:
1. создаем в /usr/bin файл:
Показать
# Сценарий предназначен для настройки межсетевого экрана
# на домашнем компьютере.
# Для запуска переименуйте сценарий в rc.firewall
# и дайте права доступа 755
# В переменной IFACE укажите ваш интерфейс доступа к Интернет.
# По умолчанию это eth1. У вас может быть eth0 или ppp0.
# Start
fw_start() {
IFACE=${IFACE:-"eth0"}
IFACEIP=`ifconfig $IFACE | grep addr: | cut -f 2 -d : | cut -f 1 -d " " `
# Удаляем все предыдущие правила
iptables -F; iptables -t nat -F; iptables -t mangle -F
# Изменяем адреса пакетов на Интернет адрес
echo "iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP "
iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP
# Принимать пакеты с установленными соединениями или связанными с ними
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Принимать все новые соединения помимо Интернет интерфейса
iptables -A INPUT -m state --state NEW -i ! $IFACE -j ACCEPT
# Если они не приняты вышеуказанными правилами, отключить их
iptables -P INPUT DROP
# Не пересылать пакеты присланные из Интернета в Интернет
iptables -A FORWARD -i $IFACE -o $IFACE -j REJECT
}
# Stop
fw_stop() {
# Удаляем все предыдущие правила
iptables -F; iptables -t nat -F; iptables -t mangle -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
}
case "$1" in
'start')
fw_start
;;
'stop')
fw_stop
;;
*)
fw_start
esac
2. прописываем в /etc/rc.local:
firewall
3. все :)
Нет? Покритикуйте меня за файл, или расскажите, как сделать штатными инструментами.
лучше в /usr/local/sbin/создаем в /usr/bin файл:
echo "iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP "
iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP
что-бы два раза не менять правила, можно
CMD="iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP"
echo "$CMD"
eval "$CMD"
# Не пересылать пакеты присланные из Интернета в Интернет
iptables -A FORWARD -i $IFACE -o $IFACE -j REJECT
почему не обойтись политикой DROP по умолчанию для FORWARD?
PS: лучше ВСЁ запретить, а потом разрешать ТОЛЬКО то, что нужно. А иначе я не понимаю смысла в вашем фаерволе.
PPS: также мне непонятно зачем вам SNAT, если FORWARD вы запретили? Делить на ноль всё ещё нельзя.
Док, ну помогите - представьте Ваш вариант (с комментами). Я здесь просто плаваю, возможно Вы мне поможете, наконец, разобраться.
mvt,
можете поиграться этим http://www.slackware.com/~alien/efg/
да. Только никому не показывай *CRAZY*Пока можно оставить?
Так, вариант2.
Tvtuner.
Ну, создал я файл в /etc/modprobe.d. Обозвал его saa7134.conf. Написал:
# TV_TUNER
alias char-major-81 saa7134
options tuner secam=d
options saa7134 card=35
Да такая фигня всю жизнь прокатывала.
Ладно, не вышло. Дописал в /etc/modules:
saa7134
Модуль грузится, поднимает и alsa, короче, все нормально. Но. Ни фига не работает. Вот мысль - а может накрылся медным тазом мой тюнер? В lspci я его не вижу... Есть у кого - нибудь мысли на эту тему?