LinuxForum.Fans
Тема

Кодировка консоли

Автор: w03zd8rc 17 сообщений 5250 просмотров
#248463
text
# locale
LANG=ru_RU.KOI8-R
LANGUAGE=
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=
text
# locale -a
C
C.UTF-8
POSIX
ru_RU
ru_RU.cp1251
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian

При этом русские символы отображаются как вопросительные знаки. Но это пол беды

text
/mnt/sda1/bases# tar -czpf /var/1C/daily/26.04.12/profix.tar.gz УСН_Профикс/
tar: \365\363\356_\360\322\317\306\311\313\323: ??????? stat ??????????? ? ???????: ???????? ??? ???????? ????????????? ??? ??????? ????
tar: ?????????? ?????? ? ?????????? ????????????? ? ??-?? ????????? ??????

что в передове в кодировку С означает

text
/mnt/sda1/bases# tar -czpf /var/1C/daily/26.04.12/profix.tar.gz УСН_Профикс/
tar: \365\363\356_\360\322\317\306\311\313\323: Cannot stat: Invalid or incomplete multibyte or wide character
tar: Exiting with failure status due to previous errors

Монтирование sda1:

text
UUID=B8D66CD5D66C9602   /mnt/sda1       ntfs-3g auto,iocharset=koi8r,users,defaults,umask=0     0       0

Как можно решить эти две проблемы? Как я понял вторая это следствие первой

#248464

А почему такая «странная» системная локаль?

#248469

Lupo Alberto, всмысле? Вы про "ru_RU.KOI8-R"?

#248470
"w03zd8rc" написал:
Вы про "ru_RU.KOI8-R"?

Ну да, почему не utf8?

#248472
"Lupo Alberto" написал:
Ну да, почему не utf8?

Его я тоже пробовал, там вместо вопросительных уже иероглифы идут

text
/mnt/sda1/bases# export LANG=ru_RU.utf8
/mnt/sda1/bases# export LC_ALL=ru_RU.utf8
/mnt/sda1/bases# tar -czpf /var/1C/daily/26.04.12/profix.tar.gz УСН_Профикс/
tar: \365\363\356_\360\322\317\306\311\313\323: пєя┐пҐп╨я├п╦я▐ stat пЇп╟п╡п╣я─я┬п╦п╩п╟я│я▄ я│ п╬я┬п╦п╠п╨п╬п╧: п²п╣п╡п╣я─пҐя▀п╧ п╦п╩п╦ пҐп╣п©п╬п╩пҐя▀п╧ п╪я┐п╩я▄я┌п╦п╠п╟п╧я┌пҐя▀п╧ п╦п╩п╦ я┬п╦я─п╬п╨п╦п╧ пЇпҐп╟п╨
tar: п≈п╟п╡п╣я─я┬п╣пҐп╦п╣ я─п╟п╠п╬я┌я▀ я│ я│п╬я│я┌п╬я▐пҐп╦п╣п╪ пҐп╣п╦я│п©я─п╟п╡пҐп╬я│я┌п╦ я│ п╦пЇ-пЇп╟ п╡п╬пЇпҐп╦п╨я┬п╦я┘ п╬я┬п╦п╠п╬п╨
#248473
"w03zd8rc" написал:
Его я тоже пробовал, там вместо вопросительных уже иероглифы идут

Вероятно, нужно монтировать с соответствующими опциями.
Если архив небольшой и несекретный ;) скиньте куда-либо посмотреть, как он у меня откроется.

#248475
"Lupo Alberto" написал:
Если архив небольшой и несекретный скиньте куда-либо посмотреть, как он у меня откроется.

к сожалению не могу выложить =) да и архив получается под гиг.
В общем, опытным путем было установленно следующее:
берем файл/папку с кирилическим названием, пробуем архивировать - получаем эту проблему. Берем эту же папку/файл и запихиваем в папку с некирилическим названием, архивируем саму папку - архивируется. В самом архиве кирилические имена плывут (становятся вида "─п╟п╡пҐ"), но при распаковке все нормально.
Проблемка то в том, что там 4 папки с кирилическими именами, которые должны быть каждая в отдельном архиве.
изначально думал делать так

text
cd /mnt/sda1/
tar -czpf /var/1C/daily/26.04.12/bases.tar.gz bases/

но тогда все папки будут в одном архиве

старая система работала по такому скрипту:

text
mkdir /var/1c/`date '+%d.%m.%y'`

mount //192.168.1.31/Tune /mnt/1c -t cifs -o iocharset=koi8-r,user=user,pass=pass cd /mnt/1c/ tar -czpf /var/1c/`date '+%d.%m.%y'`/Bobrovaoa.tar.gz ЗП-СЭ/ 1с/ЗП-СЭ/ 1c/ЗП-СЭ_22 cd ~ umount /mnt/1c rm -f /var/1c/`ls -1tr /var/1c/ | head -n1`/* rmdir /var/1c/`ls -1tr /var/1c/ | head -n1`

и работала на ура, почему-же эта так себя ведет..

#248477

Какая операционная система на 192.168.1.31, точнее, что на ней за локаль?

#248478

на 192.168.1.31 винда хп, монтировал сетевой диск, архивировал с него добро, отмонтировывал. Сам факт что и монтирование проводилось в кои8р, и системная локаль на лине была кои8р, и тар понимал нормально папки с кирилицей. Тут примерно такаяже картина, только вместо сетевых дисков отдельный жесткий на нтфс, но вот такую картину мне рисует =(

#248496
text
dpkg-reconfigure locales

Рекомендуется выбрать utf-8.

#248511
"XELFAER" написал:
Рекомендуется выбрать utf-8.

Выбрал. Все-равно "пҐп╣п╦я│п©я─" такого рода надписи все.

text
# tar -czpf /var/1C/daily/26.04.12/profix.tar.gz УСН_Профикс/
tar: \365\363\356_\360\322\317\306\311\313\323: пєя┐пҐп╨я├п╦я▐ stat пЇп╟п╡п╣я─я┬п╦п╩п╟я│я▄ я│ п╬я┬п╦п╠п╨п╬п╧: п²п╣п╡п╣я─пҐя▀п╧ п╦п╩п╦ пҐп╣п©п╬п╩пҐя▀п╧ п╪я┐п╩я▄я┌п╦п╠п╟п╧я┌пҐя▀п╧ п╦п╩п╦ я┬п╦я─п╬п╨п╦п╧ пЇпҐп╟п╨
tar: п≈п╟п╡п╣я─я┬п╣пҐп╦п╣ я─п╟п╠п╬я┌я▀ я│ я│п╬я│я┌п╬я▐пҐп╦п╣п╪ пҐп╣п╦я│п©я─п╟п╡пҐп╬я│я┌п╦ я│ п╦пЇ-пЇп╟ п╡п╬пЇпҐп╦п╨я┬п╦я┘ п╬я┬п╦п╠п╬п╨
#248516
"w03zd8rc" написал:
Все-равно "пҐп╣п╦я│п©я─" такого рода надписи все.

что то для русификации или изменения кодировки дополнительно устанавливалось?

#248647

консоль начала по русски писать... Но все-равно через.. По умолчанию выставил утф8, локаль утф8 - иероглифы. Ставлю локаль кои8р - нормально все. Ну это уже не кретично, в рц прописал установку локали и все отображается хорошо.
Но архивирование все-равно не хочет русские названия папок понимат

text
# tar -czpf /var/1C/daily/26.04.12/profix.tar.gz УСН_Профикс/
tar: УСН_Профикс: Функция stat завершилась с ошибкой: Неверный или неполный мультибайтный или широкий знак
tar: Завершение работы с состоянием неисправности с из-за возникших ошибок

при попытке выставить разные кодировки при монтировании и локали получаю одно и тоже

text
# ls
пёп║п²_п÷я─п╬я└п╦п╨я│  п╝пґ  п≤п÷_п⌠я─п╬я┬п╣п╡  п▒я┐я┘п°п╣пҐп╣пЄпІ

перекодировка всего на монтируемом жестком не вариант...

#248710

вы случайно не используете PuTTY?

#248725

XELFAER, его самого

#248739
"w03zd8rc" написал:
XELFAER, его самого

в настройках PuTTY укажите кодировку используемую в системе к которой подключаетесь.

#249335

XELFAER, еслиб это в PuTTY дело было. Скрипт

text
#!/bin/bash

mkdir /var/1C/daily/`date '+%d.%m.%y'`

cd /mnt/sda1/bases/

tar -czpf /var/1C/daily/`date '+%d.%m.%y'`/profix.tar.gz УСН_Профикс/

tar -czpf /var/1C/daily/`date '+%d.%m.%y'`/ugraexpo.tar.gz ЮЭ/

if [ `date '+%d'` = '01' ]; then mkdir /var/1C/monthly/`date '+%d.%m.%y'` cp /var/1C/daily/`date '+%d.%m.%y'`/* /var/1C/monthly/`date '+%d.%m.%y'`/ rm -f /var/1C/monthly/`ls -1tr /var/1C/monthly/ | head -n1`/* rmdir /var/1C/monthly/`ls -1tr /var/1C/monthly/ | head -n1` fi

rm -f /var/1C/daily/`ls -1tr /var/1C/daily/ | head -n1`/* rmdir /var/1C/daily/`ls -1tr /var/1C/daily/ | head -n1`

запускаемый через крон, тоже результата не дает (при отсутствии подключения через PuTTY)

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