| View previous topic :: View next topic |
| Author |
Message |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
Posted: Mon Dec 21, 2009 3:28 pm Post subject: |
|
|
VladSh
Формат символа новой строки. Меняется через "Главное меню->Правка->Формат новой строки", либо двойным кликом по этому месту в строке статуса. |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1440
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Jan 13, 2010 10:42 am Post subject: |
|
|
Infocatcher, я как раз не знал, что такое "Формат символа новой строки", я думал это "ANSI" и т.п., а это оказалось формат управляющих символов.
Спасибо за доки, - это то, что нужно!  |
|
| Back to top |
|
 |
Крепыш
Joined: 13 Nov 2008 Posts: 15
|
Posted: Sat Jan 30, 2010 6:38 am Post subject: |
|
|
Пишу скрипт 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 |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Wed Feb 03, 2010 10:43 am Post subject: |
|
|
Крепыш
то, что ты проверяешь - это BOM, которого вполне может и не быть. В общем случае юникодный файл можно определить по допустимым значениям (не все байты могут быть частью юникодного символа, см. вики). Если юникодный файл содержит только текст латиницей, тогда каждый четный (или нечетный, в зависимости от Big/Little endian) байт будет нулевым.
Бинарность определяется по наличию нетекстовых символов, но тоже лишь с долей вероятности.
Апд. Если в файле точно наличествует перевод строки, можно привязаться к нему: он будет 0xD в анси и 0x0 0xD в юникоде. Если же переводы строки только в формате виндов (0xD 0xA), то надёжность определения ещё больше повышается. |
|
| Back to top |
|
 |
Genn
Joined: 29 Jul 2008 Posts: 5
|
Posted: Fri Feb 19, 2010 4:59 am Post subject: проблема - с кодировками. |
|
|
И еще одна проблема - с кодировками.
Во-первых с автораспознаванием кодировок.
По сути так и не решена. Например в блокноте открываешь файл с юникодами, и он всегда нормально их отображает. Акель же вместо них часто пишет что-то совсем иное.
И кроме того не хватает возможности переключать ввод в нужную кодировку.
К примеру создаю файл и хочу писать в нем юникодовые символы, но ничего не выходит. Не помогает и установка "кодировка по умолчанию".
Явно не хватает непосредственной возможности переключения, как встречал у некоторых редакторов. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
Posted: Fri Feb 19, 2010 6:24 am Post subject: |
|
|
Genn
Выбираем Unicode шрифт, например, "Courier New". |
|
| Back to top |
|
 |
Genn
Joined: 29 Jul 2008 Posts: 5
|
Posted: Mon Feb 22, 2010 4:29 am Post subject: |
|
|
Instructor
Действительно, так получается. Причем обнаружил странную вещь, из-за которой пришлось дополнительно глянуть некоторые шрифты в редакторе шрифтов. Так например из двух одинаковых на первый взгляд, шрифт Tahoma оказался содержащим намного больше , а возможно и все кодовые страницы, шрифт же Verdana, хотя и содержащим несколько кодовых страниц, но явно намного меньше, т.е. в большинстве случаев не юникодовским.
Но тем не менее, остался пока что один непонятный момент.
Если создавать в блокноте файл и сохранять "как юникод", AkelPad с ним работает нормально.
Если же в блокноте сохранить "как UTF-8", AkelPad не может его прочесть, причем указывает в строке статуса в качестве страницы почему-то Win и UTF-16(?).
Аналогично не читает нормально кириллицу в xml-файлах, созданных в UTF-8, определяя кодовую страницу Unix и 1251.
Блокнот же эти файлы распознает вполне нормально. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
Posted: Mon Feb 22, 2010 4:38 am Post subject: |
|
|
Genn
Ознакамливаемся с FAQ, если проблему не решается, то называем версию AkelPad'а и скидываем файл на почту, который AkelPad не корректно открывает. |
|
| Back to top |
|
 |
|
|
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
|
Powered by phpBB © 2001, 2005 phpBB Group
|