UTF-8 без маркеров
От: lva17  
Дата: 11.10.07 09:55
Оценка:
Как сохранить текст в файл в кодировке UTF-8 без ведущих маркерных байтов?
чтобы сразу с первого байта начинались символы текста.

Классы TextWriter при указании кодировки прописывают маркеры, т.к. это положено по стандарту.
Но иногда получатель таких файлов понимает их только при отсутствии маркеров.
Re: UTF-8 без маркеров
От: ZARATUSTR Россия  
Дата: 11.10.07 10:06
Оценка:
Здравствуйте, lva17, Вы писали:

L>Как сохранить текст в файл в кодировке UTF-8 без ведущих маркерных байтов?

L>чтобы сразу с первого байта начинались символы текста.

L>Классы TextWriter при указании кодировки прописывают маркеры, т.к. это положено по стандарту.

L>Но иногда получатель таких файлов понимает их только при отсутствии маркеров.

Попробуй так:

string fileContent = "Содержимое файла";
byte[] buffer = System.Text.ASCIIEncoding.UTF8.GetBytes(fileContent);
System.IO.File.WriteAllBytes("ИмяФайла.txt", buffer);
Re: UTF-8 без маркеров
От: desco США http://v2matveev.blogspot.com
Дата: 11.10.07 10:24
Оценка: +1
Здравствуйте, lva17, Вы писали:

L>Как сохранить текст в файл в кодировке UTF-8 без ведущих маркерных байтов?

L>чтобы сразу с первого байта начинались символы текста.

L>Классы TextWriter при указании кодировки прописывают маркеры, т.к. это положено по стандарту.

L>Но иногда получатель таких файлов понимает их только при отсутствии маркеров.

How to suppress the BOM while using XMLTextWriter?
Re: UTF-8 без маркеров
От: Andir Россия
Дата: 11.10.07 10:25
Оценка: +1
Здравствуйте, lva17, Вы писали:

L>Классы TextWriter при указании кодировки прописывают маркеры, т.к. это положено по стандарту.

L>Но иногда получатель таких файлов понимает их только при отсутствии маркеров.

Сконструировать экземпляр кодировки самостоятельно. В частности, класс UTF8Encoding принимает в конструкторе параметр, указывающий на необходимость использования преамбулы.
TextWriter writer = new StreamWriter("test.txt", false, new UTF8Encoding(false));
writer.Write("Hello, UTF-8!");


С Уважением, Andir!
using( RSDN@Home 1.2.0 alpha rev. 743 ) { /* Работаем */ }
Re[2]: UTF-8 без маркеров
От: lva17  
Дата: 12.10.07 07:36
Оценка:
Здравствуйте, ZARATUSTR, Вы писали:

ZAR>Здравствуйте, lva17, Вы писали:


L>>Как сохранить текст в файл в кодировке UTF-8 без ведущих маркерных байтов?

L>>чтобы сразу с первого байта начинались символы текста.

L>>Классы TextWriter при указании кодировки прописывают маркеры, т.к. это положено по стандарту.

L>>Но иногда получатель таких файлов понимает их только при отсутствии маркеров.

ZAR>Попробуй так:

ZAR>

ZAR>string fileContent = "Содержимое файла";
ZAR>byte[] buffer = System.Text.ASCIIEncoding.UTF8.GetBytes(fileContent);
ZAR>System.IO.File.WriteAllBytes("ИмяФайла.txt", buffer);

ZAR>


Спасибо за ответ.
Проверил, метод работает.
Но он лишен гибкости использования Writer-ов.
Re[2]: UTF-8 без маркеров
От: lva17  
Дата: 12.10.07 07:37
Оценка:
Здравствуйте, desco, Вы писали:

D>Здравствуйте, lva17, Вы писали:


L>>Как сохранить текст в файл в кодировке UTF-8 без ведущих маркерных байтов?

L>>чтобы сразу с первого байта начинались символы текста.

L>>Классы TextWriter при указании кодировки прописывают маркеры, т.к. это положено по стандарту.

L>>Но иногда получатель таких файлов понимает их только при отсутствии маркеров.

D>How to suppress the BOM while using XMLTextWriter?


Как раз то, что надо!
Спасибо
Re[2]: UTF-8 без маркеров
От: lva17  
Дата: 12.10.07 07:37
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, lva17, Вы писали:


L>>Классы TextWriter при указании кодировки прописывают маркеры, т.к. это положено по стандарту.

L>>Но иногда получатель таких файлов понимает их только при отсутствии маркеров.

A>Сконструировать экземпляр кодировки самостоятельно. В частности, класс UTF8Encoding принимает в конструкторе параметр, указывающий на необходимость использования преамбулы.

A>
A>TextWriter writer = new StreamWriter("test.txt", false, new UTF8Encoding(false));
A>writer.Write("Hello, UTF-8!");
A>


A>С Уважением, Andir!


Так и сделал.
Спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.