stikriz писал(а):сё работает нормально, если перевести на WideChar, WideString.
Для полноты картины, стоило бы обозначить, что "перевести" на WideChar, это значит:
Код: Выделить всё
var
w: widestring;
begin
w:=UTF8ToUTF16('Über'); // correct
Button1.Caption:=UTF16ToUTF8(w);
end;
а не просто присвоить значение в UTF соответствующей wide, переменной, что в отличие от всяких там дельфей, не работает. Ж)
Ну и пря всяком переводе вы имеете шанс потерять информацию или исказить её. Что в случае с wide в некоторых случаях будет чертовски трудно отследить. И всё ради того чтобы обращаться к элементу строки через скобки?

Здесь скорее стоит определиться, с какими информационными массивами работаем, чтобы работать с ними без преобразования информации... Уж лезть в wide если всё представлено в utf8 - на это должны быть веские причины.