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 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
GGS



Joined: 12 Nov 2010
Posts: 29

PostPosted: Sun May 08, 2011 2:20 pm    Post subject: Reply with quote

В AkelPad.ini имею строку:
Code:
StatusUserFormat=0x%cH (%cd)
для показа кода символа в строке состояния.

Код символов от 0x00 по 0x7F отображается верно, а код символов с 0x80 по 0xFF какой-то странный.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5524

PostPosted: Sun May 08, 2011 3:57 pm    Post subject: Reply with quote

GGS
У меня все нормально. Код отображается юникодный (видимо ожидается, что код символов будет в ANSI). Посмотрите в HexSel, он отображает как ANSI, так и Unicode.
Back to top
View user's profile Send private message Send e-mail
GGS



Joined: 12 Nov 2010
Posts: 29

PostPosted: Sun May 08, 2011 6:20 pm    Post subject: Reply with quote

Instructor
Текст в кодировке 1251
латинская "o" 0x6F. В строке состояния вижу: 0x006F (111)
русская "о" 0xEE. В строке состояния вижу: 0x043E (1086)
Повторяю, текст НЕ юникодный.
Quote:
видимо ожидается, что код символов будет в ANSI
Да, а какой код нужно ожидать в НЕ юникодном формате текста.

Last edited by GGS on Sun May 08, 2011 6:34 pm; edited 1 time in total
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5524

PostPosted: Sun May 08, 2011 6:31 pm    Post subject: Reply with quote

GGS
Повторяю Smile Код AkelPad'ом отображается юникодный, несмотря на то, что файл не юникодный (все файлы приводятся к юникоду при открытии).
Back to top
View user's profile Send private message Send e-mail
Infocatcher



Joined: 06 Aug 2007
Posts: 1648

PostPosted: Sun May 08, 2011 6:36 pm    Post subject: Reply with quote

Instructor
Тогда надо добавить код символа в текущей кодировке.
Только юникод не убирайте. Smile
Back to top
View user's profile Send private message Visit poster's website
GGS



Joined: 12 Nov 2010
Posts: 29

PostPosted: Sun May 08, 2011 6:38 pm    Post subject: Reply with quote

Instructor
Хочется видеть истинный код символа, тот который в файле, а не то как его выводит при открытии AkelPad.
Quote:
%cH Шестнадцатиричный код текущего символа в верхнем регистре
Так написано в Справке, никаких упоминаний про юникодность всего, что выше 0x7F.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Sun May 08, 2011 7:07 pm    Post subject: Reply with quote

Quote:
Хочется видеть истинный код символа, тот который в файле, а не то как его выводит при открытии AkelPad.
1. Ну для этого существуют бинарные редактора. Для них содержимое - последовательность байт. Для нас(для АР) содержимое файла - последовательность текстовых символов(в любом представлении, о котором договорилось сообщество, и если не ошибаюсь, то некоторые символы могут занимать вплоть до 16 байт).
2. Кто Вам сказал, что АР помнит каждый байт исходного открытого документа? Как уже сказал инструктор, весь текст хранится и обрабатывается АР в Юникоде.
Так что придется Вам мирится.
Quote:
Так написано в Справке, никаких упоминаний про юникодность всего, что выше 0x7F.
А это по Вашему
Quote:
латинская "o" 0x6F. В строке состояния вижу: 0x006F (111)
не Юникодность? Ничего о Юникодности >0x7F не сказано, потому что Юникодно всё(и уж давно пора привыкнуть, что в WindowsNT Юникодно всё по-умолчанию, как и в 99% современных ОС).
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
GGS



Joined: 12 Nov 2010
Posts: 29

PostPosted: Sun May 08, 2011 8:53 pm    Post subject: Reply with quote

FeyFre
Quote:
весь текст хранится и обрабатывается АР в Юникоде
... и это правильно. Я ничего против, собственно, юникодности не имею.
Вы, вероятно, не поняли, что я говорю о статусной строке (%cH) и показе истинных кодов имеющихся в ANSI файлах при ANSI же режиме просмотра.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Sun May 08, 2011 10:00 pm    Post subject: Reply with quote

GGS, я понял о чем Вы говорите. И это ничего не меняет. АР открыл файл, определил кодировку, прочитал текст, конвертнул его в Юникод и всё. Акел забыл как оно лежало в файле, он помнит только как это нужно положить, не более(в какой кодировке). И не факт что положит точно в том виде, в котором взял. И в Статус буде писаться тот код, о котором помнит Акел - Юникодный.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
GGS



Joined: 12 Nov 2010
Posts: 29

PostPosted: Mon May 09, 2011 4:13 am    Post subject: Reply with quote

FeyFre
Quote:
И не факт что положит точно в том виде, в котором взял.
IMHO, в Статусе должна быть возможность видеть тот код, "который взял".
Вот пример Статуса (шесть последовательных кодов) из charmap.exe (Таблица символов):
Code:
U+007D (0x7D)
U+007E (0x7E)

U+0402 (0x80)
U+0403 (0x81)
U+201A (0x82)
U+0453 (0x83)
U+201E (0x84)
Естественно, при ANSI просмотре я ожидаю увидеть правую колонку этого примера, а не "разнобой" как в левой. Или и то и другое, как в charmap.exe
Напрашивается введение параметров %cu/%cU в дополнение к %ch/%cH

P.S. FeyFre, я говорю что и для чего я вижу, а Вы мне о том почему я это вижу.
P.P.S. На этом заканчиваю, надеюсь Instructor понимает что я говорю. Решать ему.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5524

PostPosted: Mon May 09, 2011 5:11 am    Post subject: Reply with quote

GGS
Есть одна проблема как отобразить Ansi. Например, UTF-8 файл буква "Б" Ansi код "\xD0\x91".
Back to top
View user's profile Send private message Send e-mail
DV



Joined: 16 Nov 2006
Posts: 856
Location: Kyiv, Ukraine

PostPosted: Mon May 09, 2011 1:41 pm    Post subject: Reply with quote

Instructor wrote:
GGS
Есть одна проблема как отобразить Ansi. Например, UTF-8 файл буква "Б" Ansi код "\xD0\x91".

Раз уж пошла такая пьянка Wink то можно было бы сделать так: показывать в строке статуса результат WideCharToMultiByte для кодировки текущего документа в качестве параметра UINT CodePage. Т.е. как раз "\xD0\x91" для "Б" в UTF-8, и один байт для ANSI.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Mon May 09, 2011 2:05 pm    Post subject: Reply with quote

DV
А что делать с комбинированными символами? ЕМНИП, то в стандарте предусмотрено 6 дополнительных компонентов символа(всякие черточки и точечки по бокам символов). Например есть основной символ, и три черточки. Какой именно код нужно будет показать?
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
DV



Joined: 16 Nov 2006
Posts: 856
Location: Kyiv, Ukraine

PostPosted: Mon May 09, 2011 5:27 pm    Post subject: Reply with quote

FeyFre wrote:
Какой именно код нужно будет показать?

Код основного символа?
А вообще я с таким пока не сталкивался. Не так давно я был уверен, что максимальная длина символа составляет 3 байта [некоторые символы в UTF-8], пока не узнал о "суррогатных" символах, которые в UTF-8 представляются 4 байтами.
http://ru.wikipedia.org/wiki/UTF-8
Замечание: Символы, закодированные в UTF-8, могут быть длиной до шести байт, однако стандарт Unicode не определяет символов выше 0x10ffff, поэтому символы Unicode могут иметь максимальный размер в 4 байта в UTF-8.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2061
Location: Vinnitsa, Ukraine

PostPosted: Mon May 09, 2011 6:09 pm    Post subject: Reply with quote

DV
UTF8 вообще-то по стандарту определенно и для 4-байтовых комбинаций(а технически рассчитано и для 6 байтовых), и это не суррогаты. Суррогаты - это когда глиф кодируется двумя кодам: основным символом и доп. элементами.
Код основного символа некорректно. Например для если буквы "Ё" представить только код "Е" без кода двух точек, то получается немного не то. Также для буквы "Ї" = І + двоеточие сверху.
Это нам то повезло. А в немецких языках: A U O против Ä Ö Ü и aeoiuy против áéóíúý - содержимое то меняется.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 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