AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Помогите Пожалуйста с кодировками
Goto page Previous  1, 2
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5315

PostPosted: Mon Dec 21, 2009 3:28 pm    Post subject: Reply with quote

VladSh
Формат символа новой строки. Меняется через "Главное меню->Правка->Формат новой строки", либо двойным кликом по этому месту в строке статуса.
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1614

PostPosted: Mon Dec 21, 2009 5:55 pm    Post subject: Reply with quote

VladSh wrote:
А что тогда означает надпись Unix чуть левее?

http://ru.wikipedia.org/wiki/CR_LF, управляющие символы
CR LF – \r\n – Windows
LF – \n – Unix
CR – \r – Mac
Back to top
View user's profile Send private message Visit poster's website
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Wed Jan 13, 2010 10:42 am    Post subject: Reply with quote

Infocatcher, я как раз не знал, что такое "Формат символа новой строки", я думал это "ANSI" и т.п., а это оказалось формат управляющих символов.
Спасибо за доки, - это то, что нужно! Cool
Back to top
View user's profile Send private message Visit poster's website
Крепыш



Joined: 13 Nov 2008
Posts: 15

PostPosted: Sat Jan 30, 2010 6:38 am    Post subject: Reply with quote

Пишу скрипт JScript для обработки текстовых файлов. В основном они в кодировке ANSI, но иногда попадаются и в UNICODE. Для проверки на UNICODE использую такую онструкцию:
Code:
var FileIn = objFileIn.OpenAsTextStream(1);                                  //Открываем 1-й файл, по умолчанию он открывается в ANSI
var Text = FileIn.ReadLine();                                                     //Читаем первую строку
                                                                                  //Проверяем первые два байта
if ((Symbol = Text.substr(0, 2)) != '\u044f\u044e' && Symbol != '\u044e\u044f')   //Считаем, что кодировка ANSI
  var FileOut = FSO.CreateTextFile(FileNameOut)                                   //Создаём новый файл (по умолчанию в ANSI)
else                                                                              //Иначе, считаем, что кодировка UNICODE
{
  FileIn.Close();                                                                 //Закрываем 1-й файл
  FileIn = objFileIn.OpenAsTextStream(1, -1);                                     //И открываем в UNICODE
  var FileOut = FSO.CreateTextFile(FileNameOut, true, true);                      //Создаём 2-й файл в UNICODE
         Text = FileIn.ReadLine()
}

Поправьте, пожалуйста, если что не так. Меня интересует правильность проверки на UNICODE:
Code:
if ((Symbol = Text.substr(0, 2)) != '\u044f\u044e' && Symbol != '\u044e\u044f')

Также иногда попадаются нетекстовые файлы. Как проверить их на бинарность, чтобы исключить из обработки?
Back to top
View user's profile Send private message
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Wed Feb 03, 2010 10:43 am    Post subject: Reply with quote

Крепыш
то, что ты проверяешь - это BOM, которого вполне может и не быть. В общем случае юникодный файл можно определить по допустимым значениям (не все байты могут быть частью юникодного символа, см. вики). Если юникодный файл содержит только текст латиницей, тогда каждый четный (или нечетный, в зависимости от Big/Little endian) байт будет нулевым.
Бинарность определяется по наличию нетекстовых символов, но тоже лишь с долей вероятности.

Апд. Если в файле точно наличествует перевод строки, можно привязаться к нему: он будет 0xD в анси и 0x0 0xD в юникоде. Если же переводы строки только в формате виндов (0xD 0xA), то надёжность определения ещё больше повышается.
Back to top
View user's profile Send private message
Genn



Joined: 29 Jul 2008
Posts: 5

PostPosted: Fri Feb 19, 2010 4:59 am    Post subject: проблема - с кодировками. Reply with quote

И еще одна проблема - с кодировками.
Во-первых с автораспознаванием кодировок.
По сути так и не решена. Например в блокноте открываешь файл с юникодами, и он всегда нормально их отображает. Акель же вместо них часто пишет что-то совсем иное.
И кроме того не хватает возможности переключать ввод в нужную кодировку.
К примеру создаю файл и хочу писать в нем юникодовые символы, но ничего не выходит. Sad Не помогает и установка "кодировка по умолчанию".
Явно не хватает непосредственной возможности переключения, как встречал у некоторых редакторов.
Back to top
View user's profile Send private message Send e-mail
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5315

PostPosted: Fri Feb 19, 2010 6:24 am    Post subject: Reply with quote

Genn
Выбираем Unicode шрифт, например, "Courier New".
Back to top
View user's profile Send private message Send e-mail
Genn



Joined: 29 Jul 2008
Posts: 5

PostPosted: Mon Feb 22, 2010 4:29 am    Post subject: Reply with quote

Instructor
Действительно, так получается. Причем обнаружил странную вещь, из-за которой пришлось дополнительно глянуть некоторые шрифты в редакторе шрифтов. Так например из двух одинаковых на первый взгляд, шрифт Tahoma оказался содержащим намного больше , а возможно и все кодовые страницы, шрифт же Verdana, хотя и содержащим несколько кодовых страниц, но явно намного меньше, т.е. в большинстве случаев не юникодовским.
Но тем не менее, остался пока что один непонятный момент.
Если создавать в блокноте файл и сохранять "как юникод", AkelPad с ним работает нормально.
Если же в блокноте сохранить "как UTF-8", AkelPad не может его прочесть, причем указывает в строке статуса в качестве страницы почему-то Win и UTF-16(?).
Аналогично не читает нормально кириллицу в xml-файлах, созданных в UTF-8, определяя кодовую страницу Unix и 1251.
Блокнот же эти файлы распознает вполне нормально.
Back to top
View user's profile Send private message Send e-mail
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5315

PostPosted: Mon Feb 22, 2010 4:38 am    Post subject: Reply with quote

Genn
Ознакамливаемся с FAQ, если проблему не решается, то называем версию AkelPad'а и скидываем файл на почту, который AkelPad не корректно открывает.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group