ПредишенСледващото

Как да определите кодирането на текстовия файл

Здравейте майстор! текстов файл, който искате да запазите данните, кодирани в ANSI като UTF-8. Yuzayu следния код:
AssignFile (F "myfile.txt");
Препишете (F);
WriteLn (F "Пример");
CloseFile (F);
Получавам текстов файл, кодиран в ANSI. Какво съм аз греша?


> Получаване на текстов файл, кодиран в ANSI. Какво съм аз греша?

Всичко.

Как искате? Помогнете моля.

Моля, опитайте се да разберете проблема. За "данните, кодирани в ANSI като UTF-8" - това е глупост.


> Необходимо е да се спаси текстовия файл

Горната кодът не се направи това, той създава нов файл.
Въз основа на това, има спекулации за неправилно формулиране на въпроса.
например: искате да запазите данните в текстов файл.

Tekst.fayl трябва да създавате и записвате данни в UTF8 кодиране

бонг не е utefe.

> Бонг не е utefe.
за английски текст monopisualno.

Пример даде за пример, при формирането на контакт файл Важи за мобилни телефони във формат VCF, което е причина ANSI не raspoznaetcya, макар и създадени в стандартната VCF файла. оригинален контакт Файлът, който се изпраща на мобилните телефони с pisyuk кодиран UTF8 (кодиране показва, когато отворите Notepad ++)

ако, например, след това хвана отговор за един пример:
в кода на данните в него не са написани на UTF-8 и следователно данните UTP-8 в рамките на даден файл.

Var
# XA0; т: TStringlist;

започвам
т: = tstringlist.create;
опитвам
# XA0; t.add ( "utf8line");
# XA0; t.savetofile ( "file.txt", TEncoding.UTF8);
накрая
# XA0; t.free;
приключи;
приключи;

Var
# XA0; sl1, SL2: TStringList;
# XA0; и: цяло число;
започвам
# XA0; SL1: = TStringList.Create;
# XA0; SL2: = TStringList.Create;
# XA0; sl1.Add ( "данни в своя код");
# XA0; sl1.Add ( "във файла не са написани на UTF-8");
# XA0; sl1.Add ( "и следователно не е UTF-8 на данни в рамките на файла.");
# XA0, защото: = 0 до sl1.Count - 1 направи
# XA0; sl2.Add (AnsiToUtf8 (sl1.Strings [Ь]));
# XA0; sl1.SaveToFile ( "ANSI.txt");
# XA0; sl2.SaveToFile ( "utf.txt");

> OW # XA0; в utf.txt vseravno ANSI :(
> megavoid # XA0; Запазва в UTF но на BOM, и без да е необходимо да се по друг неправомерен начин признава MOBILE

> Омлет Аз също го намерили, просто не разбирам как да се набутат няколко реда?

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

процедура StringSave (Конст Име: TFileName; Конст Данни: UTF8String);
Var
# XA0; FS: TFileStream;
започвам
# XA0; FS: = TFileStream.Create (FileName, fmCreate);
# XA0; опитате
# XA0; # XA0; FS.Write (Pointer (Data) ^, Дължина (Data));
# XA0; накрая
# XA0; # XA0; FS.Free;
# XA0; край;
приключи;

Var
т: TStringlist;
започвам
т: = tstringlist.create;
опитвам
t.add ( "Начало: картичка");
t.add ( "версия: 2.1");
t.add ( "N; CHARSET = UTF-8; кодиране = 8-битов: Боб чичо");
t.add ( "TEL; PREF; глас кодиране = 8-битов: 0957676345345");
t.add ( "END: картичка");
StringSave ( "Vasya.vcf чичо", UTF8Encode (t.Text));
накрая
t.free;
приключи;

Mozht е полезно)


> Mishanya7-8 # XA0; (05/12/11 13:26) [14]
>
>> OW # XA0; в utf.txt vseravno ANSI :(

Имам UTF-8 без BOM спестява

Памет: 0.75 MB
Време: 0.031 гр

Подкрепете проекта - споделете линка, благодаря!