Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
ВнизА как-бы мне строку, введенную в edit преобразовать в unicode??? Найти похожие ветки
← →
Cker (2002-10-12 23:58) [0]сабж
← →
Anatoly P (2002-10-13 00:43) [1]Функция StringToWideChar(
const Source: string;
Dest: PWideChar;
DestSize: Integer ): PWideChar;
Функция помещает в буфер DestSize-1 символ и символ окончания строки. В качестве результата функция возвращает указатель на буфер Dest.
← →
Cker (2002-10-13 23:08) [2]А вотвопрос: имеется несколько версий unicode. Будет-ли такой вариант работать для всех случаев?
← →
Cker (2002-10-13 23:16) [3]procedure TForm1.Button1Click(Sender: TObject);
var Dest : PWideChar;
i : Integer;
begin
StringToWideChar("Проверка", Dest, i);
end;
вылетает фатальная ошибка:"Access violation at address........."
???
← →
Вася Пупкин (2002-10-14 02:55) [4]Правильно вылетает....Dest - Указатель на буфер...а где буфер-то ? -)
Хотя бы так:
procedure TForm1.Button1Click(Sender: TObject);
var Dest : array[1..9] of WideChar;
begin
StringToWideChar("Проверка", @Dest, 9);
end;
← →
Cker (2002-10-14 22:46) [5]А разве это Unicode?????
Я просматриваю Dest и вижу массив букв ("П", "р", "о"........)
А вроде-ж должно быть что-то типа #1010 для каждой буквы???
← →
Cker (2002-10-16 23:19) [6]мммммммм
help
← →
int64 (2002-10-17 10:23) [7]Вот такой вариант есть.
function Unicode(const S: string): string;
var
I: Integer;
Hex: string;
begin
for I := 1 to Length(S) do
case S[i] of
" ": result := Result + "+";
"A".."Z", "a".."z", "*", "@", ".", "_", "-",
"0".."9", "$", "!", """", "(", ")":
result := Result + s[i];
else
begin
Hex := IntToHex(ord(S[i]), 2);
if Length(Hex) = 2 then Result := Result + "%" + Hex else
Result := Result + "%0" + hex;
end;
end;
end;
← →
Smithson (2002-10-17 11:04) [8]Товарищи, не путайте слона и трепетную лань!
Unicode в HTML - это %HEX кодировка символов.
Unicode в Delphi - это многобайтное представление символов. Для
этого идут функции WideString.
← →
Игорь Шевченко (2002-10-17 11:10) [9]Кстати, версия unicode - одна.
← →
Cker (2002-10-17 14:12) [10]>Smithson
Согласен.
На каждый символ по два байта: кодовая страница и непосредственно код символа.
Пробую вариант:
procedure TForm1.Button1Click(Sender: TObject);
var Dest : array[1..9] of WideChar;
begin
StringToWideChar("Проверка", @Dest, 9);
end;
Получаю в Dest: "П", "р", "o" и т. д.
???
← →
Smithson (2002-10-17 14:20) [11]Ну и правильно!
Инспектор при просмотре правильно интерпретирует WideChar.
Если очень надо - сбрось Dest в файл и посмотри его фаром - все увидишь.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c