Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Непонятки с кодировкой [D7, XP]


Страницы:   1 2

jacksotnik ©   (2011-04-20 15:51:00) 

Получаю код символа с помошью ord например буква русская "а" орд мне возвращает код 1072 я смотрю в таблице ascii у этого символа код 160, как получить правильный код?


Ega23   (2011-04-21 15:35:00) [1]


> Ord(Utf8String('а')[1]) = $d0 = 208

Как ты 208 получил?


han_malign   (2011-04-21 15:15:00) [2]


> Угу, что мы и имеем в реальности.

- не, $0432 - это нормальный UCS-2.

Word(UTF8('а') = $D0,$B0) = $B0D0 = 45264

Ord(Utf8String('а')[1]) = $d0 = 208


Inovet   (2011-04-21 11:14:00) [3]

У автора таблица из старого учебника или первая попавшаяся в Инете. Хотя бы в Вики посмотрел
http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0


Ega23   (2011-04-21 09:21:00) [4]


> - это 866-я кодовая страница(aka. OEM)...

А, ну это да, может быть.

> и о ужас - UTF8...

Угу, что мы и имеем в реальности.


han_malign   (2011-04-21 08:50:00) [5]

З.Ы. А еще ведь есть KOI-8r, ISO-8859-5, не говоря уж о всякой экзотике вроде  EBCDIC(cp-880), и о ужас - UTF8...


han_malign   (2011-04-21 08:33:00) [6]


> 160 - неверно).

- это 866-я кодовая страница(aka. OEM)...


Anatoly Podgoretsky   (2011-04-20 20:37:00) [7]


> jacksotnik   (20.04.11 15:56) [2]

Где код, а не этот огрызок


oldman   (2011-04-20 16:20:00) [8]


> даёт результат 224 (что и соответствует строчной "а", 160
> - неверно).


естественно, поскольку 1072-848 равно таки 224


oldman   (2011-04-20 16:18:00) [9]


> Ega23 ©   (20.04.11 16:15) [11]


Я ему и в прошлой ветке на гугль намекал.
Но чукча не читатель, чукча писатель.


Ega23   (2011-04-20 16:17:00) [10]

При этом код
procedure TForm12.Button5Click(Sender: TObject);
const
 a: AnsiChar = 'а';
begin
 ShowMessage(IntToStr(Ord(a)));
end;


даёт результат 224 (что и соответствует строчной "а", 160 - неверно).


Ega23   (2011-04-20 16:15:00) [11]


> Получаю код символа с помошью ord например буква русская
> "а" орд мне возвращает код 1072 я смотрю в таблице ascii
> у этого символа код 160, как получить правильный код?


Проверил. У тебя юникодная строка.
Delphi 2010:

procedure TForm12.Button5Click(Sender: TObject);
const
 a: Char = 'а';
begin
 ShowMessage(IntToStr(Ord(a)));
end;


Ровно 1072


Медвежонок Пятачок   (2011-04-20 16:12:00) [12]

Отвечаю symb:=ord(str[i]); ввожу "а" и в переменной у меня оказывается 1072

Вводишь "а" и чё?

А что в это время лежит в "i" ?

И что показывает ShowMessage(str[i]) ?


oldman   (2011-04-20 16:12:00) [13]


> TZero_bits.CountZeroBits(str: string): integer;


Блин... Начинающий, с ветками разберись уже!!!


Ega23   (2011-04-20 16:11:00) [14]


> вот этот параметр str function TZero_bits.CountZeroBits(str:
>  string): integer;


Код функции в студию.


jacksotnik   (2011-04-20 16:09:00) [15]

вот этот параметр str function TZero_bits.CountZeroBits(str: string): integer;

передаю так CountZeroBits(edit1.Text)


Ega23   (2011-04-20 16:00:00) [16]


> Не используй WideString.

+1


Плохиш   (2011-04-20 16:00:00) [17]

Не используй WideString.


Ega23   (2011-04-20 16:00:00) [18]


> Отвечаю symb:=ord(str[i]); ввожу "а" и в переменной у меня
> оказывается 1072

Если Delphi 7 и тип string - враньё.


oldman   (2011-04-20 15:58:00) [19]


> symb:=ord(str[i]); ввожу "а"


Кто на ком стоял?


jacksotnik   (2011-04-20 15:56:00) [20]

Отвечаю symb:=ord(str[i]); ввожу "а" и в переменной у меня оказывается 1072


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо