Текущий архив: 2004.02.13;
Скачать: CL | DM;
Вниз
Как преобразовать строку в Unicode, а так же из Unicode? Найти похожие ветки
← →
Pahan_ (2004-02-02 22:31) [0]Subj.
← →
jack128 (2004-02-02 23:01) [1]присваиванием
← →
BlackLord2003 (2004-02-03 14:22) [2]А по точнее? Мне тоже нужно!
← →
Тимохов (2004-02-03 14:26) [3]Кого преобразовать в unicode?
Если переменную типа string, то присваиванием.
Правда, при преобразовании unicode -> string можно потерять определенные символы.
← →
Pahan_ (2004-02-03 19:25) [4]Имеется ввиду что-то вроде:
var
ws:widestring;
s:string;
begin
ws:=строка_в_юникоде
s:=widestring(ws);
end;
?
Если можно, объясните на простеньком примере.
← →
Тимохов (2004-02-03 19:28) [5]
> Pahan_ (03.02.04 19:25) [4]
Ну в общем да.
К сожалению не помню точно, что происходит с символами, которые не могут быть преобразованы из widestring (типа всякие национальные).
Можешь сам попробовать.
← →
Pahan_ (2004-02-03 20:55) [6]Что-то не получается. Тестировал так:
procedure TForm1.Button1Click(Sender: TObject);
var
ws:widestring;
s:tstringlist;
begin
s:=tstringlist.Create;
s.Text:=WideString(Memo1.Text);
s.SaveToFile("c:\test2.txt");
s.free;
end;
Это не работает.
Далее попытка прочитать из Юникода:
procedure TForm1.Button2Click(Sender: TObject);
var
ws:widestring;
s:tstringlist;
begin
s:=tstringlist.Create;
s.LoadFromFile("c:\test2.txt");
ShowMessage(WideString(s.Text));
s.free;
end;
Тот же результат. Что я делаю не так?
← →
Тимохов (2004-02-03 21:00) [7]
> procedure TForm1.Button1Click(Sender: TObject);
> var
> ws:widestring;
> s:tstringlist;
> begin
> s:=tstringlist.Create;
> s.Text:=WideString(Memo1.Text);
> s.SaveToFile("c:\test2.txt");
> s.free;
> end;
Что-то логики не видно.
Что Вы вообще хотите сделать?
Причем тут Unicode?
Все свойства, которые участвуют в данном коде, являются типа string?
О я начал просекать, что Вам нужно?
Вам надо сохранить строку widechar в файле а потом прочесть? Если да, то см в хелпе Utf8Encode, а также see also.
← →
Pahan_ (2004-02-03 21:22) [8]2 Тимохов
Ок. Признаю, глупость написал. Может переработал, а скорее по незнанию. Просто от этого Юникода в голове такая каша, что уже и не понимаю где что. Давай так: я буду говорить то, что знаю, а ты отвечать - прав я или нет. Начнем.
1. Юникод подразделяется на несколько подразделов, а именно: utf-7, utf-8, utf-16, utf-32 (только не надо отправлять меня на unicode.org. Был я там, читал. Ничего не понял.)?
2. Далее. Какой из этих "подразделов" наиболее часто используется? Вообще, что подразумевается под словом "Юникод". Если можно, по-проще.
Еще вот что: может видел редактор RulNote? Хотя, вообщем-то все равно. Там есть ф-ция такая - экспорт Unicode (так и называется). Экспортирую, к примеру, такой текст:
ТЕСТ текст в Юникоде
На выходе (в Блокноте) получаю вот что:
яю"!" B5:AB 2 .=8:>45
Открываю этот файл в Opera и вижу, что текст определился как UTF-16. В общем в этом вся задача: как бы мне прочитать этот Utf-16?
← →
Тимохов (2004-02-04 11:40) [9]Определись с задачей.
Я так понимаю, что у тебя задача такая:
1. есть строка типа widestring (т.е. каждый символ представлен двумя байтами)
2. надо ее сохранить в файле (т.е. там, где каждый символ представлен одним байтом)
3. надо прочесть ее из файла в переменную типа widestring
Если задача такая, то тебе надо widestring перевести без потерь в код типа utf (например, 8), представляемый однобайтовой строкой. В дельфи 6 (думаю и в 7) это решается функцией Utf8Encode и аналогичными (см. в справке).
Все.
Страницы: 1 вся ветка
Текущий архив: 2004.02.13;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.009 c