LinuxForum.Fans
Тема

Цикл «Переходим на Ubuntu вместе»

Автор: redix 94 сообщений 43684 просмотров
#339565

"-=Serj=-⇓" написал:
Насчёт кодировки не знаю, но, вроде, из zip'a можно выудить информацию о системе, в которой был создан файл и, соответственно, предположить кодировку, например, для XP - UTF-16LE.
щаз! Вы сами видите, что она cp866.
#339577
"drBatty" написал:
нет такого слова "не вышло". Показывайте как пробовали, или прямо скажите -- не осилил.
text

$ echo "’’¥ªáâ®¢ë© ¤®ªã¬¥â" | iconv -c -f UTF16LE -t 866

На выходе - пусто.

drBatty написал:
[quote="-=Serj=-⇓"]Насчёт кодировки не знаю, но, вроде, из zip'a можно выудить информацию о системе, в которой был создан файл и, соответственно, предположить кодировку, например, для XP - UTF-16LE.
щаз! Вы сами видите, что она cp866.[/quote]
Откуда видно, что она cp866?
#339584
"-=Serj=-⇓" написал:
echo "’’¥ªáâ®¢ë© ¤®ªã¬¥â" | iconv -c -f UTF16LE -t 866
На выходе - пусто.

ещё-бы! Потому-что эта последовательность == юникод.

Hint: попробуйте hexdump -C

"-=Serj=-⇓" написал:
Откуда видно, что она cp866?

из вашего поста:

"-=Serj=-⇓" написал:
decode('866')

(я-то просто тупо по опыту знаю, что маздай до сих пор в 866 работает)

PS:

"-=Serj=-⇓" написал:
iconv -c -f UTF16LE -t 866

--from это ОТКУДА
--to это КУДА

при чём тут это ваше 16LE? Забудьте. Всё проще. В маздае 866, у вас UTF-8. И да, -t можно не писать, она сама догадается.

#339588
"drBatty" написал:
(я-то просто тупо по опыту знаю, что маздай до сих пор в 866 работает)

Дык, вопрос стоял - как автоматически определить кодировку пожатых файлов - Цикл «Переходим на Ubuntu вместе»

"drBatty" написал:
при чём тут это ваше 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 для обработки символов в оперативной памяти.
#339594
"-=Serj=-⇓" написал:
Дык, вопрос стоял - как автоматически определить кодировку пожатых файлов - Цикл «Переходим на Ubuntu вместе»

разве имелись ввиду не ИМЕНА файлов? Вот что пишет автор этого поста:

"Харитон⇓" написал:
вот файл сделанный в виндовс хр средствами самой хр...
покажите как мне получить оригинальное имя файла
"-=Serj=-⇓" написал:

лучше-бы вы туда не ходили... Или вы забыли, как я их называю? Или забыли за что?

"-=Serj=-⇓" написал:
В Microsoft Windows NT и основанных на ней системах Windows 2000 и Windows XP в основном используется форма UTF-16LE.

Это так в рекламном буклете написано. IRL ежели-бы это было правдой, ты мысы потеряла-бы САМОЕ ЦЕННОЕ -- совместимость с тоннами старого быдлокода с потерянными исходниками. Потому это "в основном" следует читать как "имеются куча костылей для NIH-unicode в самых неожиданных местах".

"-=Serj=-⇓" написал:
В UNIX-подобных операционных системах GNU/Linux, BSD и Mac OS X принята форма UTF-8 для файлов и UTF-32 или UTF-8 для обработки символов в оперативной памяти.

мда... Как всегда.

#339617
"drBatty" написал:
разве имелись ввиду не ИМЕНА файлов?

Хорошо, тогда так: "как автоматически определить кодировку имён пожатых файлов?"

"drBatty" написал:
Это так в рекламном буклете написано. IRL ежели-бы это было правдой, ты мысы потеряла-бы САМОЕ ЦЕННОЕ -- совместимость с тоннами старого быдлокода с потерянными исходниками. Потому это "в основном" следует читать как "имеются куча костылей для NIH-unicode в самых неожиданных местах".

Ясно :)

#339622
"-=Serj=-⇓" написал:
Хорошо, тогда так: "как автоматически определить кодировку имён пожатых файлов?"

дык а общего решения таки и нет... А вы думаете, почему его ещё в СПО не реализовали?

Общее решение -- UTF-8, но некоторых производителей ОС это не волнует. Им вообще наплевать на проблемы нацменов.

#339628
"-=Serj=-⇓" написал:
Дык, вопрос стоял - как автоматически определить кодировку пожатых файлов
text
$ ls -l *.txt | enca
Universal transformation format 8 bits; UTF-8

Ну, почти.

#339643

Короче, вот вам универсальный unzipper :D

text

#!/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', ''))

#339657
"drBatty" написал:
при чём тут это ваше 16LE?

Я понял, откуда взялись эти дополнительные кодировки. Проблема в DE менеджере архивов (в моём случае file-roller), видимо, он пытается угадать кодировку, но неудачно...

ЗЫ. Кстати, оба архива и Харитон'a, и BWR'a у меня прекрасно распаковались unzip'ом.

#339672
"-=Serj=-⇓" написал:
Короче, вот вам универсальный unzipper

у него есть фатальный недостаток: только по-русски.

#339673

"-=Serj=-⇓" написал:
Кстати, оба архива и Харитон'a, и BWR'a у меня прекрасно распаковались unzip'ом.
кстати неправильный unzip. Мой выдал Ъ имена, как оно и было.
#368380

Так, правда пробуем ubuntu. Как насчет firewall? Есть штатные средства или сделать так:
1. создаем в /usr/bin файл:

Показать
#!/bin/sh

# Сценарий предназначен для настройки межсетевого экрана
# на домашнем компьютере.
# Для запуска переименуйте сценарий в 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. все :)
Нет? Покритикуйте меня за файл, или расскажите, как сделать штатными инструментами.

#368383
"mvt" написал:
создаем в /usr/bin файл:
лучше в /usr/local/sbin/

"mvt" написал:
echo "iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP "
iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP

что-бы два раза не менять правила, можно

text
CMD="iptables -t nat -A POSTROUTING -o $IFACE -j SNAT --to $IFACEIP"
echo "$CMD"
eval "$CMD"
"mvt" написал:
# Не пересылать пакеты присланные из Интернета в Интернет
iptables -A FORWARD -i $IFACE -o $IFACE -j REJECT

почему не обойтись политикой DROP по умолчанию для FORWARD?

PS: лучше ВСЁ запретить, а потом разрешать ТОЛЬКО то, что нужно. А иначе я не понимаю смысла в вашем фаерволе.

PPS: также мне непонятно зачем вам SNAT, если FORWARD вы запретили? Делить на ноль всё ещё нельзя.

#368388

Док, ну помогите - представьте Ваш вариант (с комментами). Я здесь просто плаваю, возможно Вы мне поможете, наконец, разобраться.

#368391

у меня отсюда

там много букв, но если ты хочешь с этим разобраться, то прочитать придётся, увы.

либо не мучай голову, и используй штатные способы (или ваще оставь как есть).

#368394
drBatty написал:
у меня отсюда

Да у меня есть бумажный букварь. Читал, чесал репу :) Что вышло - то и вышло. Пока можно оставить? А потом буду потихоньку разбираться... Лучшее - враг хорошего, не? :)

#368396

"mvt" написал:
Пока можно оставить?
да. Только никому не показывай *CRAZY*
#368398

Так, вариант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 я его не вижу... Есть у кого - нибудь мысли на эту тему?

Войдите или зарегистрируйтесь, чтобы ответить.