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

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

Как задать кодировку текстовому файлу


Мишаня7-8 ©   (2011-12-05 02:52:00) 

Привет мастера! Нужно сохранить текстовый файл с данными в кодировке ANSI as UTF-8. Юзаю такой код:
AssignFile(F,'myfile.txt');
Rewrite(F);
WriteLn(F,'Example');
CloseFile(F);
получаю текстовый файл в кодировке ANSI. Что делаю не так?


OW   (2011-12-05 14:18:00) [1]


> Мишаня7-8   (05.12.11 13:26) [14]
>
> >OW  В утф.txt всеравно ANSI :(

у меня в UTF-8 без BOM сохраняет


Мишаня7-8   (2011-12-05 14:08:00) [2]

Все! Сохраняет в UTF-8 без BOM! Решил вот так:

procedure StringSave(const Filename: TFileName; const Data: UTF8String);
var
 FS: TFileStream;
begin
 FS := TFileStream.Create(FileName, fmCreate);
 try
   FS.Write(Pointer(Data)^, Length(Data));
 finally
   FS.Free;
 end;
end;

var
t:TStringlist;
begin
t := tstringlist.create;
try
t.add('BEGIN:VCARD');
t.add('VERSION:2.1');
t.add('N;CHARSET=UTF-8;ENCODING=8BIT:дядя Вася');
t.add('TEL;PREF;VOICE;ENCODING=8BIT:0957676345345');
t.add('END:VCARD');
StringSave('дядя Вася.vcf', UTF8Encode(t.Text));
finally
t.free;
end;

Можт кому пригодится ;)


Омлет   (2011-12-05 14:00:00) [3]


> Мишаня7-8   (05.12.11 13:57) [16]

Куда туда?


Мишаня7-8   (2011-12-05 13:57:00) [4]

>Омлет Я тоже это нашел,только не пойму как туда несколько строк запихнуть?


Омлет   (2011-12-05 13:55:00) [5]

https://forums.embarcadero.com/thread.jspa?threadID=33585&tstart=15


Мишаня7-8   (2011-12-05 13:26:00) [6]

>OW  В утф.txt всеравно ANSI :(
>megavoid  Сохраняет в UTF но з BOM, а нужно без иначе неверно распознает мобила


Мишаня7-8   (2011-12-05 12:38:00) [7]

>megavoid (Embarcadero Delphi 2010) Спасибо! Буду пробовать...


OW   (2011-12-05 12:37:00) [8]

var
 sl1, sl2: TStringList;
 i: Integer;
begin
 sl1 := TStringList.Create;
 sl2 := TStringList.Create;
 sl1.Add('в твоем коде данные ');
 sl1.Add('в файл пишутся не в утф-8 ');
 sl1.Add('и поэтому внутри файла не утф-8 данные. ');
 for i := 0 to sl1.Count - 1 do
  sl2.Add( AnsiToUtf8(sl1.Strings[i]) );
 sl1.SaveToFile('ANSI.txt');
 sl2.SaveToFile('утф.txt');

d7


megavoid   (2011-12-05 12:22:00) [9]

var
 t: TStringlist;

begin
t := tstringlist.create;
try
 t.add('utf8line');
 t.savetofile('file.txt', TEncoding.UTF8);
finally
 t.free;
end;
end;


это если дельфи 2010 и старше


Медвежонок Пятачок   (2011-12-05 11:50:00) [10]

если для примера, то лови ответ для примера:
в твоем коде данные в файл пишутся не в утф-8 и поэтому внутри файла не утф-8 данные.


Мишаня7-8   (2011-12-05 11:44:00) [11]

Example указано для примера, в дествительности формируется файл контакта для мобилы в формате VCF,который в кодировке ANSI почему-то не распознаетcя,хотя создан по стандарту файла VCF. Оригинальный файл контакта,который переслал на писюк с мобилы в кодировке UTF8(кодировку отображает при открытии Notepad++)


sniknik   (2011-12-05 09:32:00) [12]

> один бом еще не утефе...
для английского текста монописуально.


KilkennyCat   (2011-12-05 08:53:00) [13]

один бом еще не утефе...


sniknik   (2011-12-05 07:51:00) [14]

ну а в [0] не создал, не сохранил разве? английское "Example" оно как бы и так и так верно, и одинаково. и ansi и utf8.
или тебе нужна метка (BOM) в файле? ну добавь ее тогда. почитай по utf8 например тут http://ru.wikipedia.org/wiki/UTF8и добавь.


Мишаня7-8   (2011-12-05 03:44:00) [15]

Надо создать текст.файл и сохранить данные в кодировке utf8


KilkennyCat   (2011-12-05 03:39:00) [16]


> Нужно сохранить текстовый файл

выше приведенный код этого не делает, он создает новый файл.
исходя из этого, есть предположение, о неверной формулировке вопроса.
например: нужно сохранить данные в текстовый файл...


mike   (2011-12-05 03:19:00) [17]

Сначала пойми задачу. Ибо "с данными в кодировке ANSI as UTF-8" - это бред.


Мишаня7-8   (2011-12-05 03:04:00) [18]

Как надо? Помогите пожалуйста...


Германн   (2011-12-05 03:00:00) [19]


> получаю текстовый файл в кодировке ANSI. Что делаю не так?

Всё.


Наверх

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