Как создать файл UTF8 в C # - PullRequest
2 голосов
/ 09 июля 2010

Что касается вопроса о том, как создать файл, который также содержит метку порядка байтов?

Возникли проблемы с отображением некоторых символов, поскольку программа просмотра CSV не может правильно отображать символы без спецификации.

Цени любую помощь.

РЕДАКТИРОВАТЬ Чтобы включить код:

string attachment = string.Format("attachment; filename=results_{0}_to _{1}.csv", startDate.ToString("MM_yy_yyyy"), endDate.ToString("MM_yy_yyyy"));
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.AddHeader("Pragma", "public");

string content = GetTextFromDB();

HttpContext.Current.Response.Write(content);
HttpContext.Current.Response.End();

1 Ответ

4 голосов
/ 09 июля 2010

Это должно быть сделано автоматически для любого встроенного кода с использованием Encoding, например, StreamWriter - просто убедитесь, что кодировщик, который вы передаете, настроен на включение bom (по умолчанию Encoding.UTF8 включает bom).

Если вы работаете со своей собственной логикой Encoding -> Stream, вам нужно вызвать .GetPreamble() и записать эти байты в начале потока.

по умолчанию Encoding.UTF8 включает преамбулу;но вы можете сделать это явно в ctor: new UTF8Encoding(true)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...