Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.18;
Скачать: CL | DM;

Вниз

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

 
Мишаня7-8   (2011-12-05 02:52) [0]

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


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


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

Всё.


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

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


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

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


 
KilkennyCat ©   (2011-12-05 03:39) [4]


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

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


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

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


 
sniknik ©   (2011-12-05 07:51) [6]

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


 
KilkennyCat ©   (2011-12-05 08:53) [7]

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


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

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


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

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


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

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


 
megavoid ©   (2011-12-05 12:22) [11]

var
 t: TStringlist;

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


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


 
OW ©   (2011-12-05 12:37) [12]

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


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

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


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

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


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

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


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

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


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


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

Куда туда?


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

Все! Сохраняет в 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;

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


 
OW ©   (2011-12-05 14:18) [19]


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

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



Страницы: 1 вся ветка

Текущий архив: 2012.03.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
2-1323088905
ШК
2011-12-05 16:41
2012.03.18
Отвправка почты средствами Indy в gmail


2-1323158524
Scott Storch
2011-12-06 12:02
2012.03.18
поиск по таблице бд


15-1322339776
Vyacheslav
2011-11-27 00:36
2012.03.18
Какую версию Delphi используете в Windows 7 64bit?


2-1323012601
xrumas
2011-12-04 19:30
2012.03.18
Работа с одномерными массивами


15-1322239708
Димка На
2011-11-25 20:48
2012.03.18
Сложные судоки