LINUX.ORG.RU

проблемы с кодировкой


0

1

Всем доброго времени суток, возникла вот такая проблема, поставил линукс(mint) и теперь в текстовых файлах не распознает русский язык который раньше был введен, когда ввожу новый оно его видит, но до закрытия файлика, когда снова открываю, обрадто ироглифы, подскажите пожауста как с этим боротса( и прозьба детально обьяснить как побороть(в линуксе я чайник))

Нажми ALT и F2.
Там набери xterm и нажми enter.
В запущенном терминале веди команду locate.
Очень хочется посмотреть на то, что она скажет.

Lumi ★★★★★ ()

Есть кодировка файла, есть текуцая кодировка (отображения и ввода информации) называется locale в POSIX- системах (Linux - посикс система).

Если кодировки файла и locale не совпадают при просмотре ты видишь иероглифы. Ещё иегорлифы бывают если неправильно настроено средство вывода (программа-терминал).

Для того чтобы определить текущую кодировку есть команда locale. Там будет что-то вроде: en_US.UTF-8, где UTF-8 - это и будет кодировка вывода.

Для того чтобы посмотреть файл в другой кодировке надо либо поменять кодировку текущей локаль(сильно не рекомендуется, часто нужно перенастраивать терминал), либо перекодировать файл.

Тренированный юниксоид определяет кодировку файла и системную локаль на глаз по результату вывода файла на терминал. после определения кодировки выполняется программа iconv для файла (или recode, мне она нравится больше, но iconv есть везде), например cat abc.txt | iconv -f CP1251 -t UTF8 >abc.utf8.txt, после чего смотрится преобразованный файл.

Все это не извращение а очень полезно, т.к. любая программа может работать с разными локалями и на разных языках, достаточно просто сказать LANG=ch_CH mc и вам mc будет на китайском.

gena2x ★★★ ()

Потому что в файлах, которые вы создавали в винде, была кодировка CP1251. А теперь ваш текстовый редактор открывает их используя кодировку текущей локали (команда locale), которая скорее всего UTF-8.

Это не значит что для того чтобы редактировать эти файлы вам придётся менять локаль.

Просто не все редакторы умеют [корректно] распознавать кодировки или их нужно настраивать.
gedit из гнома вроде бы сносно определяет кодировку, жаль только что хоть меню для настройки кодировки там даже есть, оно, в лучших традициях сраного ХИГа, появляется только если gedit не может определить кодировку файла.

Можно и не париться, а просто сконвертить все txt-шки в кошерный UTF8 с помощью enconv.

Nao ★★★★★ ()
Ответ на: комментарий от gena2x

Ну вы и страшные вещи пишете тут) Только новичков пугаете.
vim например хорошо определяет кодировки после небольшой допилки, а смотреть кодировку фала можно с помощью enca.

Nao ★★★★★ ()
Ответ на: комментарий от Nao

s/оно, в лучших традициях/но оно, в лучших традициях/

Nao ★★★★★ ()

Тогда такой еще глупый вопрос, я просто сейчас не на работе(завтра проверю то что вы посоветовали) но просто на перед узнать, я работаю просто в вебдизайн фирме с хтмлками, если я кодировуку сменю на UTF-8 в файлах их потом в винде смогут открывать и нормально распозновать? просто у нас на работе несколько компов с лицензионной виндой стоят, чтобы просто потом не пришлось постоянно менять кодировку им и мне

Flex1on ()
Ответ на: комментарий от Flex1on

>просто у нас на работе несколько компов с лицензионной виндой стоят, чтобы просто потом не пришлось постоянно менять кодировку им и мне

Тогда надо редактировать прямо в той кодировке в которой файл. Это должен поддерживать редактор, т.е. всё зависит от того редактора что вы используете, например gedit как сказали выше поддерживает, думаю любой другой html редактор тоже. Если перекодировать то в UTF-8 - лучший выбор, но не все виндовые редакторы её поддерживают. От cp1251 лучше отказаться в любом случае, т.к. в ней нельзя работать с локализациями например.

gena2x ★★★ ()
Ответ на: комментарий от Nao

> Ну вы и страшные вещи пишете тут) Только новичков пугаете.

Человек помоему вообще не понимает что такое кодировки зачем нужны и что с ними делать, я объяснил на пальцах заодно с основами локализации :)

gena2x ★★★ ()
Ответ на: комментарий от gena2x

> locale
Да, именно, приношу извинения. Опечатался.

Lumi ★★★★★ ()

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

в ~/.vimrc добавь строки:

set fileencodings=utf-8,cp1251,koi8-r,latin1

set wildmenu
set wcm=<Tab>
menu Encoding.koi8-r :e ++enc=koi8-r ++ff=unix<CR>
menu Encoding.windows-1251 :e ++enc=cp1251 ++ff=dos<CR>
menu Encoding.cp866 :e ++enc=cp866 ++ff=dos<CR>
menu Encoding.utf-8 :e ++enc=utf8 <CR>
map <F8> :emenu Encoding.<TAB>

установи плагин AutoFenc: http://www.vim.org/scripts/script.php?script_id=2721

плагин использует утилиту enca - автоматическое определение кодировки файлов, поэтому ее тоже нужно установить.

После этих нехитрых действий вим будет автоматически определять кодировку файла, а по кнопке F8 можно будет вручную переключаться между кодировками.

SilentBob ()

[quote=«»]когда ввожу новый оно его видит, но до закрытия файлика, когда снова открываю, обрадто ироглифы,[/quote]

Открываешь редактор (У меня Kwrite.) и лезешь в настройки: Settings - Configure Editor - Open/Save - Там ищещь строки Encoding и End of Line (У меня Cyrillic (cp 1251) и Dos/Windows) Это для текстовых файлов, которые по умолчанию будут правильно открываться и в русскоязычной Винде. Работает и с HTML.

Менять локаль и прочую х.... - не советую. Проще настроить этот один редактор. А другой редактор использовать для другой кодировки.

testlinux ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.