Как прочитать строку с кодировкой UTF8, используя linq для объектов

Я пытаюсь прочитать таблицу LimeSurvey, используя Linq to entity. Моя проблема в том, что LimeSurvey хранит строки в UTF8, а .Net это не нравится...

Итак, у меня есть простая функция для вывода списка всех моих опросов. Как я могу заставить Linq читать строки в формате UTF8?

Моя функция:

public static List<Lime_Surveys> List()
    {
        using (LimeSurveyEntities db = new LimeSurveyEntities())
        {

            IQueryable<Lime_Surveys> list = db.Lime_Surveys.Include("Lime_Surveys_LanguageSettings");

            return list.ToList();
        }
    }

person Sergio    schedule 06.12.2011    source источник
comment
Возможно, это работает: заголовок stackoverflow.com/questions/2557992/   -  person okrumnow    schedule 06.12.2011
comment
@Henk Holterman: таблица Lime_Surveys имеет несколько строковых полей, все с одной и той же проблемой ... каждый раз, когда используется такой символ, как «é», строка отображается неправильно на .net   -  person Sergio    schedule 07.12.2011
comment
«неправильно» — это не совсем отчет о проблеме. Если вам нужны ответы: образцы, подробности, шестнадцатеричные виды.   -  person Henk Holterman    schedule 07.12.2011
comment
@Хенк Холтерман: я думаю, что проблема явная. У меня есть строка в базе данных, хранящаяся в программе php в utf8, такие символы, как éãçí и т. д., заменяются символами. при чтении php отображает их нормально, .Net отображает их именно так, как они хранятся в базе данных. Я знаю, что это utf8, потому что notepad++ правильно отображает строку при использовании этой опции.   -  person Sergio    schedule 07.12.2011
comment
@okrumnow: Спасибо, сработало отлично. Если вы разместите, если в качестве ответа, я проголосую и отмечу его как принятый.   -  person Sergio    schedule 07.12.2011


Ответы (1)


Вам нужно изменить кодировку строки, которую вы читаете, используя

Encoding.UTF8.GetString(Encoding.Default.GetBytes(yourstring))

Проверьте этот ответ: Получить правильный вывод из UTF-8, хранящегося в VarChar, с помощью Entity Framework или Linq2SQL?

person okrumnow    schedule 07.12.2011