![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятки с кодировкой [D7, XP]
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