Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Lazarus. Код символа в UTF8


Автор: Heriz 21.1.2012, 21:01
Написана функция UpCase для русских букв в UTF8. Символ получается либо '?' либо пробел. Код символа даже к тысяче не приближается. С Windows-1251 в Delphi все работало. 

Без учета 'Ё'
Код

function TForm1.UpCaseRus(c : widechar):widechar;
begin
    if ord(c)-32<=1040 then Result:=c else
    Result:=char(ord(c)-32);
end;

Автор: bems 22.1.2012, 13:26

M
bems
Перенесено из раздела Дельфи

Автор: volvo877 23.1.2012, 18:18
Цитата(Heriz @  21.1.2012,  20:01 Найти цитируемый пост)
Написана функция UpCase для русских букв в UTF8
Велосипед?

Код
procedure TForm1.Button1Click(Sender: TObject);
var
  s : UTF8String;
  Ch : String;
begin
  s := Utf8Encode('привет');
  Ch := UTF8Copy(s, 3, 1); // Uses LCLProc для этой функции: получаем третий символ строки ...
  Ch := UTF8Encode(WideUpperCase(UTF8Decode(Ch))); // ... переводим его в верхний регистр ...

  ShowMessage(Ch); // -> 'И'
end;

Автор: Heriz 23.1.2012, 19:53
volvo877, да - велосипед. Для винды под делфи приходилось. 
Спасибо за ответ.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)