Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.027 c
1-38774
programania
2004-02-03 18:22
2004.02.13
вывод на form1.canvas


3-38695
Volodya_
2004-01-22 13:57
2004.02.13
Проблема GetBookmark


1-38957
Прямой
2004-02-03 19:50
2004.02.13
Добавить из TreeView в другой TreeView


14-39083
Ломброзо
2004-01-24 00:13
2004.02.13
За Родину, за Путинда!


1-38881
Семен Сорокин
2004-02-04 17:46
2004.02.13
Как различить одинарный и двойной клик.