Показать сообщение отдельно
Старый 09.06.2015, 12:09   #3
FreeOwl
Новичок
 
Аватар для FreeOwl
 
Пол:Мужской
Регистрация: 20.11.2007
Адрес: Москва
Сообщений: 28
Репутация: 0
По умолчанию Re: скрипт для преобразования кракозябров

Цитата:
Сообщение от Andersol Посмотреть сообщение
Для linux - iconv может так тупить только при одном случае - он не распознал какой-то символ. Надо пробовать другую.

спасибо.

Но я свою задачу решил.
поскольку у меня было "раскодированное" слово и примерное понимание "откуда ноги растут", то:
Код:
#!/bin/bash

str1='Ê•‡•‚Æ≠„'
str2='церетону'

codeset="cp1251 utf-8 cp866 ISO-8859-5 MS-MAC-CYRILLIC MAC MAC-CYRILLIC MAC-CENTRALEUROPE MACINTOSH"
decoder='iconv -cf $CS1 -t $CS2 | iconv -cf $CS3 -t $CS4'
 
for CS1 in $codeset; do
  for CS2 in $codeset; do
    for CS3 in $codeset; do
      for CS4 in $codeset; do
 
	# исключить сам в себя
	[ "$CS1" == "$CS2" -o "$CS4" == "$CS3" ] && continue
	[ "$CS1" == "$CS4" -a "$CS2" == "$CS3" ] && continue

	[ "$str2" == "$(echo "$str1" | eval "$decoder")" ] && echo "ответ найден: из $CS1 в $CS2, затем из $CS3 в $CS4";

      done
    done
  done
done
в результате:
Код:
# ./decode_04.sh 
ответ найден: из utf-8 в MAC, затем из cp866 в utf-8
ответ найден: из utf-8 в MACINTOSH, затем из cp866 в utf-8
а дальше дело техники ))
FreeOwl вне форума
 
Ответить с цитированием Вверх
 
Время генерации страницы 0.08425 секунды с 9 запросами