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

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

Widestring to String [D7, WinXP]


Cara ©   (2004-07-17 14:59:00) 

Добрый день.
Подскажите пожалуйсто как перевести Widestring в String.


clickmaker   (2004-07-19 13:44:00) [1]

var
A: String;
B: WideString;
begin
// ...
A := string(B);
// ...
end;


Anatoly Podgoretsky   (2004-07-19 11:59:00) [2]

Cara ©   (17.07.04 19:58) [2]
Значит невозможно конвертировать в твою текущую кодувую страницу.

Cardinal ©   (17.07.04 20:24) [3]
Неверно по сути, вот выписка из справки
The reserved word string functions like a generictype identifier

Это может быть ShortString, AnsiStringили WideString, на текущий момент как минимум первые два


Суслик   (2004-07-19 11:14:00) [3]

Копилятор вызывает сам WideCharToMultiByte(), но, если не ошибаюсь, для текущей кодовой страницы.

Можно вызывать эту функцию самому, передавая любую кодовую страницу. Но надо быть готовым, что не все символы будут преобразованы верно. Если у вас в уникоде миксуются разные кодировки - то что-то точно пропадет :))) Т.е. будет "?".

Если нужны знания в этой области, то см. раздел MSDN nls - national language support. Поиском поищите - сразу найдете, самому лень ссылку искать.


VMcL   (2004-07-17 22:21:00) [4]

>>Cara ©  (17.07.04 19:58) [2]

Значит, твоя Unicode строка содержит символы не представимые в кодировке ANSI с учётом текущей кодовой страницы. Можешь попробовать вручную сделать преобразование - см. WideCharToMultiByte(), хотя компилятор при присваивании, приведенном в [1], сам вызывает WideCharToMultiByte().


Cara   (2004-07-17 20:27:00) [5]

Ну да.
Я по этому и спрашиваю как правильно конвертировать строку в Юникоде в стандартную.


Cardinal   (2004-07-17 20:24:00) [6]

String, как я знаю, не поддерживает Unicode


Cara   (2004-07-17 19:58:00) [7]

Строка  Widestring в Юникоде.
При переводе
A := B;
получаю на выходе
'??????????'


VMcL   (2004-07-17 18:42:00) [8]

var
 A: String;
 B: WideString;
begin
 // ...
 A := B;
 // ...
end;


Наверх

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