UTF-8 приводит к вопросительным знакам - PullRequest
0 голосов
/ 14 января 2019

Написание и чтение текста в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...