Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
4-1255265451
Alexei
2009-10-11 16:50
2012.03.18
Отслеживание моментов входа в ОС (WinXP)?


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


2-1322823148
CheCoder
2011-12-02 14:52
2012.03.18
Как отправить содержимое Image1 на печать?


15-1322370665
Валера
2011-11-27 09:11
2012.03.18
Как научиться верстать?


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский