Написание и чтение текста в utf-8 приводит к появлению вопросительных знаков.
У меня есть приложение, которое экспортирует данные из моей базы данных в файлы CSV. Эти файлы могут быть импортированы снова, действуя как резервная копия. Теперь у меня проблемы с кодировкой шведских символов, таких как "åäö". В моем первом решении написал файл, используя кодировку stringwriter
(см. Код). Когда я посмотрел файл в notepad ++, он по умолчанию имеет UCS-2 Little Endian encoding
.
Этот файл выглядит хорошо, все специальные символы отображаются правильно. Тем не менее, я начал сталкиваться с проблемами при импорте файла снова. Поскольку я использую Encoding.UTF8.GetString()
, он, конечно, пишет неправильные символы, потому что это неправильная кодировка. Решением здесь является использование UCS-2 Little Endian
, конечно. Проблема в том, что я не хочу этим пользоваться!
Итак, я попытался изменить исходную кодировку при записи на UTF-8 вместо result.Encoding
, например Encoding.UTF8
. Однако, когда я открываю файл в Excel, текст заменяется знаком вопроса.
Итак, мои вопросы таковы; Как мне писать и читать с кодировкой UTF-8 специальными буквами, работающими должным образом в Excel и Блокноте? Может быть, лучше использовать Unicode?
public void ExportAttendees()
{
var result = new StringWriter();
Response.ContentEncoding = result.Encoding; //Encoding.UTF8
}
public ActionResult ImportAttendees(HttpPostedFileBase file)
{
var content = Encoding.UTF8.GetString(binData).Replace("\0", "").Replace("\r", ""); //Here I could use something else?
//Code omitted