The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"подскажите где сзять прогу или скрипт для перекодировки cp12..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"подскажите где сзять прогу или скрипт для перекодировки cp12..."
Сообщение от zzz Искать по авторуВ закладки on 12-Фев-03, 23:27  (MSK)
сабж
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: подскажите где сзять прогу или скрипт для перекодировки ..."
Сообщение от vova Искать по авторуВ закладки on 13-Фев-03, 06:16  (MSK)
>сабж

один из вариантов:


#!/usr/bin/perl

while (<STDIN>){
        tr/юабцде╗фгхийклмнопярстужвьызшэщчъЮАБЦДЕ╦ФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ/АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя/;
        print ;
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Варианты с утилитами UNIX"
Сообщение от SergeiZz Искать по авторуВ закладки on 13-Фев-03, 09:35  (MSK)
>сабж
Вариант номер 1;
bash$  iconv  -f CP1251  -t  KOI8-R  myfile-cp1251.txt  -o myfile-koi8.txt

Вариант номер 2;
bash$  recode  windows-1251  myfile.txt

Вариант номер 2 затрёт старый файл. Так же поступит и вариант номер 1,
если не писать  -o myfile-koi8.txt.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Варианты с утилитами UNIX"
Сообщение от zzz Искать по авторуВ закладки on 13-Фев-03, 13:14  (MSK)
не работает не iconv не recode,выдает:
iconv: unable to open specified converter: No such file or directory
recode: /samba.log закончилось неудачей: Системно обнаруженная ошибка в `CP1251..CHAR'

кстати, все это во FreeBSD

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Варианты с утилитами UNIX"
Сообщение от lavr emailИскать по авторуВ закладки on 13-Фев-03, 13:42  (MSK)
>не работает не iconv не recode,выдает:
>iconv: unable to open specified converter: No such file or directory
>recode: /samba.log закончилось неудачей: Системно обнаруженная ошибка в `CP1251..CHAR'
>
>кстати, все это во FreeBSD

[alone]~ > whereis iconv
iconv: /usr/local/bin/iconv /usr/local/man/man1/iconv.1.gz /usr/ports/converters/iconv
[alone]~ > ldd /usr/local/bin/iconv
/usr/local/bin/iconv:
        libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x18067000)
        libc.so.4 => /usr/lib/libc.so.4 (0x18142000)
[alone]~ > iconv -l

[alone]~ > ls -la /usr/local/share/iconv

recode - правда про utf ничего не знает, но мне нравится:

[unix1]~ > recode
Usage: recode  -{ai|ak|aw|ia|ik|iw|ka|ki|kw|wa|wi|wk|at|it|kt|wt|kr|ke|hex|html} [input_file [output_file]]
       Parameters are:
       -ai         - from Alternative to ISO,
       -ak         - from Alternative to Koi8,
       -aw         - from Alternative to Windows,
       -ia         - from ISO to Alternative,
       -ik         - from ISO to Koi8,
       -iw         - from ISO to Windows,
       -ka         - from Koi8 to Alternative,
       -ki         - from Koi8 to ISO,
       -kw         - from Koi8 to Windows,
       -wa         - from Windows to Alternative,
       -wi         - from Windows to ISO;
       -wk         - from Windows to Koi8;
       -at         - from Alternative to Transliterate,
       -it         - from ISO to Transliterate,
       -kt         - from Koi8 to Transliterate,
       -wt         - from Windows to Transliterate,
       -kr         - from Keyboard: Latin to Cyrillic, from "QwErtY" -> "ЙцУкеН"
       -ke         - from Keyboard: Cyrillic to Latin, from "ФыВапР" -> "AsDfgH"
       -hex        - from HEX-style ("=EF=F0") to Normal;
       -html       - from HTML-style ("&...;") to Normal;
       input_file  - name of input file, may be "-" as standard input;
       output_file - name of output file, may be "-" as standard output.
[unix1]~ >

http://unix1.jinr.ru/~lavr/local/recode-all.c

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Варианты с утилитами UNIX"
Сообщение от zzz Искать по авторуВ закладки on 13-Фев-03, 15:33  (MSK)
спасибо lavr

токо оказалось что у меня файл не в ср1251, как я думал, а в какой-то
Alternative (-ak), что это за кодировка такая?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Варианты с утилитами UNIX"
Сообщение от Mercurius emailИскать по авторуВ закладки on 13-Фев-03, 15:46  (MSK)
>спасибо lavr
>
>токо оказалось что у меня файл не в ср1251, как я думал,
>а в какой-то
>Alternative (-ak), что это за кодировка такая?

не досовская случайно?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Об Alt кодировке"
Сообщение от SergeiZz Искать по авторуВ закладки on 13-Фев-03, 17:02  (MSK)
>>спасибо lavr
>>
>>токо оказалось что у меня файл не в ср1251, как я думал,
>>а в какой-то
>>Alternative (-ak), что это за кодировка такая?
>
>не досовская случайно?

Были когда-то распространены три досовские кодировки русских букв;
"новая", "старая" и "альтернативная". Alt победила в соревновании
за счёт того, что в ней символы псевдографики стоят на своих местах,
позволяя Нортону говорить по русски без причуд.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: Варианты с утилитами UNIX"
Сообщение от lavr emailИскать по авторуВ закладки on 13-Фев-03, 17:51  (MSK)
>спасибо lavr
>
>токо оказалось что у меня файл не в ср1251, как я думал,
>а в какой-то
>Alternative (-ak), что это за кодировка такая?


cp866

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: Варианты с утилитами UNIX (об 866)"
Сообщение от SergeiZz Искать по авторуВ закладки on 14-Фев-03, 08:52  (MSK)
>>спасибо lavr
>>
>>токо оказалось что у меня файл не в ср1251, как я думал,
>>а в какой-то
>>Alternative (-ak), что это за кодировка такая?
>
>
>cp866

Знание этого числа (866), между прочим, пригодится при
настройке пакета Samba; нужно выставить правильное преобразование
кодовых страниц при чтени имён файлов. Хотя на Windows
машине имена файлов в cp1251, но по сети они будут передаваться
в cp866.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "RE: Варианты с утилитами UNIX (об 866)"
Сообщение от Hak emailИскать по авторуВ закладки on 14-Фев-03, 10:07  (MSK)
а как русские имена отконвертировать из одной кодировки в другую ???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "RE: Варианты с утилитами UNIX (об 866)"
Сообщение от SergeiZz Искать по авторуВ закладки on 14-Фев-03, 10:56  (MSK)
>а как русские имена отконвертировать из одной кодировки в другую ???
Чьи имена? Файлов? Каких? На удалённой Windows машине, видимой по Samba?
На локальной системе, видимых с Windows раздела? Созданных заново на
локальной системе? Сохранённых с почтовых вложений?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "RE: Варианты с утилитами UNIX (об 866)"
Сообщение от Hak emailИскать по авторуВ закладки on 14-Фев-03, 11:41  (MSK)
а что есть разница .... ???
вообще я делаю архив Самбы локально на CD-R ... все русские имена файлов в кои-8r ... этот диск надо читать нормально под windows ... т.е мне нужна схема

перекодировка имен файлов -> архиватор -> makeiso -> burncd

как сделать первое ??


  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "RE: Варианты с утилитами UNIX (об 866)"
Сообщение от SergeiZz Искать по авторуВ закладки on 14-Фев-03, 15:17  (MSK)
>а что есть разница .... ???
>вообще я делаю архив Самбы локально на CD-R ... все русские имена
>файлов в кои-8r ... этот диск надо читать нормально под windows
>... т.е мне нужна схема
>
>перекодировка имен файлов -> архиватор -> makeiso -> burncd
>
>как сделать первое ??

Могу написать сценарий на bash. Только я уезжаю в область до понедельника.
Если там найду комп с UNIX, то напишу и протестирую.

Разница есть в каждом указанном случае. Универсальное решение мне не
известно (кому известно -- подскажите!).

  Рекомендовать в FAQ | Cообщить модератору | Наверх

15. "Обещанный сценарий"
Сообщение от SergeiZz Искать по авторуВ закладки on 17-Фев-03, 10:00  (MSK)
>Могу написать сценарий на bash.

Я понял задачу так. Под Linux (UNIX) создаются файлы с русскими именами.
Затем архивируются, и разархивируются уже под Windows. Так, что файл.txt
превращается в ТЮИК.txt. Для решения задачи я написал сценарий ficonv,
который перекодирует имена файлов и каталогов, вложенных в указанный
каталог. Имя этого корневого каталога не перекодируется.
Я протестировал ficonv на Red Hat Linux 7.2. Он правильно преобразует
имена с начальной точкой и содержащие пробелы, но символы табуляции и
перевода строки в именах файлов не допускаются.
Техника применения ficonv следущая;
bash$ chmod 755 ficonv
bash$ ./ficonv rootdir KOI8-R CP1251
bash$ tar czf rootdir.tar.gz rootdir
bash$ ./ficonv rootdir CP1251 KOI8-R

Вот текст ficonv:
#!/bin/bash
# USAGE: ficonv rootDir fromEncoding toEncoding
echo "--- ficonv version 1.0.7 ---"
OLD_IFS=$IFS
IFS=$'\n'
for f in `find "$1" -depth -regex "$1/.*" -print` ; do
        DIR=`echo "$f" |\
                awk -F/ '{ \
                fn=$1"/"; \
                for( i= 2; i < NF; i++ ) fn=fn $i "/"; \
                print fn }'`

        NAME=`echo "$f" | awk -F/ '{ print $NF }'`
        NEWNAME=`echo "$NAME" | iconv -f "$2" -t "$3" -`

        if [ "$DIR$NAME" != "$DIR$NEWNAME" ] ; then
                mv -v "$DIR""$NAME" "$DIR""$NEWNAME"
        fi
done
IFS=$OLD_IFS
echo "--- That's all there is to it. Bye! ---"
# EOF

Парочка важных замечаний. Если Вы используете FreeBSD, то можете
столкнуться с проблемой, обнаруженной zzz. В этом случае смотрите
лаконичные комментари lavr. Всё это выше по потоку.
Проверьте, всё ли в порядке, выполнив команду
bash$ echo файл | iconv -f KOI8-R -t CP1251
Если выдаст ТЮИК, то всё в порядке.

Восстанавливать значение IFS нет нужды, но я поставил IFS=$OLD_IFS
на случай, если Вы захотите что-то добавить к ficonv.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

16. "RE: Обещанный сценарий"
Сообщение от alchie Искать по авторуВ закладки on 21-Фев-03, 08:04  (MSK)
>>Могу написать сценарий на bash.
>
тоже самое на перле - слабал после того, как надоело с предыдущим бороться (% фря 4.7-stable

#!/usr/bin/perl -w
foreach $file (`find $ARGV[0] -regex "$ARGV[0]/.*" -print`) {
  chomp $file;
  $newfile=`echo $file | iconv -f $ARGV[1] -t $ARGV[2]`;
  chomp $newfile;
  rename($file,$newfile);
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "RE: Варианты с утилитами UNIX"
Сообщение от Messmer Искать по авторуВ закладки on 14-Фев-03, 11:47  (MSK)
>спасибо lavr
>
>токо оказалось что у меня файл не в ср1251, как я думал,
>а в какой-то
>Alternative (-ak), что это за кодировка такая?
А в таких случаях стоить применять xcode. В пакаджах имеется. Автоматически определяет кодировку входного текста. Можно и точно указать откуда и куда в какой нужно.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру