Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];
ВнизКак задать кодировку текстовому файлу Найти похожие ветки
← →
Мишаня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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c