![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как задать кодировку текстовому файлу
Мишаня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. Что делаю не так?
Всё.