Автор Тема: Проблема с кодировками в системе  (Прочитано 7761 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн snowman-fedya

  • Активист
  • ****
  • Сообщений: 343
Re: Проблема с кодировками в системе
« Ответ #15 : Май 05, 2016, 23:07:11 »
на все попытки отвечает:
cp1251 doesn't cover all needed characters for: "./Õìåëüíîé Åëü.444"

может там другая кодировка ?  Попробуй для интереса с нормальными файлами от windows.

Там кодировка utf8. Проблема в том, что файл создался с именем в символах не кириллической страницы. Как вернуть кириллические символы, вот вопрос.

"нормальных файлов от windows" у меня нет по причине 1) нету windows 2) несколько непонятно, что значит "нормальные файлы".

программка эта предназначена для перекодирования имён в случае, если имена в cp1251 или cp866 в utf8, скажем. Но у меня имя файла уже в utf8, и нужно получить имя файла тоже в utf8, только сменив страницу символов на кириллическую. Боюсь, что эта программка тут бессильна :(

Оффлайн ek-nfn

  • Местный
  • *****
  • Сообщений: 1422
Re: Проблема с кодировками в системе
« Ответ #16 : Май 06, 2016, 01:25:11 »
программка эта предназначена для перекодирования имён в случае, если имена в cp1251 или cp866 в utf8, скажем.

По моему ты ее сильно недооцениваешь. Она перекодируют любую кодировку в любую из нижеследующего следующего списка. Еще раз спрашиваю - ты задаешь ей правильную кодировку ? Она, вроде как, могет и сама определять ее, но по слухам криво. Попробуй, не помню нужную опцию.
7bit-jis
AdobeStandardEncoding
AdobeSymbol
AdobeZdingbat
ascii
ascii-ctrl
big5-eten
big5-hkscs
cp1006
cp1026
cp1047
cp1250
cp1251
cp1252
cp1253
cp1254
cp1255
cp1256
cp1257
cp1258
cp37
cp424
cp437
cp500
cp737
cp775
cp850
cp852
cp855
cp856
cp857
cp858
cp860
cp861
cp862
cp863
cp864
cp865
cp866
cp869
cp874
cp875
cp932
cp936
cp949
cp950
dingbats
euc-cn
euc-jp
euc-kr
gb12345-raw
gb2312-raw
gsm0338
hp-roman8
hz
iso-2022-jp
iso-2022-jp-1
iso-2022-kr
iso-8859-1
iso-8859-10
iso-8859-11
iso-8859-13
iso-8859-14
iso-8859-15
iso-8859-16
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-ir-165
jis0201-raw
jis0208-raw
jis0212-raw
johab
koi8-f
koi8-r
koi8-u
ksc5601-raw
MacArabic
MacCentralEurRoman
MacChineseSimp
MacChineseTrad
MacCroatian
MacCyrillic
MacDingbats
MacFarsi
MacGreek
MacHebrew
MacIcelandic
MacJapanese
MacKorean
MacRoman
MacRomanian
MacRumanian
MacSami
MacSymbol
MacThai
MacTurkish
MacUkrainian
MIME-B
MIME-Header
MIME-Header-ISO_2022_JP
MIME-Q
nextstep
null
posix-bc
shiftjis
symbol
UCS-2BE
UCS-2LE
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UTF-7
utf-8-strict
utf8
viscii
Devuan ASCII x32..x64

Оффлайн ub-sp

  • Постоялец
  • ***
  • Сообщений: 155
Re: Проблема с кодировками в системе
« Ответ #17 : Май 06, 2016, 07:28:55 »
Типа так ...  из одной в другую:

Цитировать (выделенное)
iconv -f код -t код -o newfilename твой_файл

-f, --from-code кодировка оригинального текста
-t, --to-code | кодировка для вывода
-o, --output | Сохранить результат в файл

Перечень доступных команде кодировок смотришь так:
Цитировать (выделенное)
iconv -l
1. А как можно определить какая кодировка в тексте? Через браузер мозила он показывает utf-8 но похоже это не так.
2. iconv -f код -t код -o newfilename твой_файл - надо указывать путь (какой файл перекодировать) или просто вписываю новое название пробел старое название файла? Если нужно указывать путь пример черкани.

Оффлайн snowman-fedya

  • Активист
  • ****
  • Сообщений: 343
Re: Проблема с кодировками в системе
« Ответ #18 : Май 06, 2016, 09:55:21 »
программка эта предназначена для перекодирования имён в случае, если имена в cp1251 или cp866 в utf8, скажем.

По моему ты ее сильно недооцениваешь. Она перекодируют любую кодировку в любую из нижеследующего следующего списка. Еще раз спрашиваю - ты задаешь ей правильную кодировку ? Она, вроде как, могет и сама определять ее, но по слухам криво. Попробуй, не помню нужную опцию.

Да я пробовал любое практически любое сочетание из подходящих, не помогло. Видать, магии не хватило...

Оффлайн ek-nfn

  • Местный
  • *****
  • Сообщений: 1422
Re: Проблема с кодировками в системе
« Ответ #19 : Май 06, 2016, 11:35:49 »
Цитировать (выделенное)
1. А как можно определить какая кодировка в тексте? Через браузер мозила он показывает utf-8 но похоже это не так.
насколько помню - командами enca ,  file

Цитировать (выделенное)
2. iconv -f код -t код -o newfilename твой_файл - надо указывать путь (какой файл перекодировать) или просто вписываю новое название пробел старое название файла? Если нужно указывать путь пример черкани.

iconv -f cp1251 -t utf8 -o out_file in_file
где
in_file - файл, который перекодируем (если в другой директории, то указываем путь)
out_file   - файл, в который пишем перекодированный результат (без указания пути пишет в директорию, которую кажет терминал. Обычно домашняя папка)


Да я пробовал любое практически любое сочетание из подходящих, не помогло. Видать, магии не хватило...
согласен, случайный перебор всех возможных комбинаций кодировок сродни подбору сложного пароля  ;D Это надолго. Поэкспериментируй с утилитами определения кодировок. Их много всяких. Я сталкивался с этим всего пару раз на заре перехода в линукс, поэтому много рассказать не получится из-за отсутствия опыта, да и забылось уже.
Devuan ASCII x32..x64

Оффлайн snowman-fedya

  • Активист
  • ****
  • Сообщений: 343
Re: Проблема с кодировками в системе
« Ответ #20 : Май 06, 2016, 12:34:44 »
проблема решена.

mv "$1" "$(echo $1|iconv -f utf-8 -t cp1252 | iconv -f cp1251 -t utf-8)"
может, и криво, но работает.

Всем спасибо :)