Hoe een string te lezen met UTF8-codering met behulp van linq naar entiteiten

Ik probeer een tabel met LimeSurvey te lezen met behulp van Linq voor entiteiten. Mijn probleem is dat LimeSurvey strings in UTF8 opslaat en .Net vindt het niet leuk ...

Dus ik heb een eenvoudige functie om al mijn enquêtes op te sommen, hoe kan ik Linq vertellen om de strings in het UTF8-formaat te lezen?

Mijn functie:

public static List List()
    {
        using (LimeSurveyEntities db = new LimeSurveyEntities())
        {

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

            return list.ToList();
        }
    }
2
@Henk Holterman: de tabel Lime_Surveys heeft verschillende stringvelden, allemaal met hetzelfde probleem ... elke keer dat een karakter als 'é' wordt gebruikt, wordt de string verkeerd weergegeven op .net
toegevoegd de auteur Sergio, de bron
@Henk Holterman: Ik denk dat het probleem expliciet is. Ik heb een tekenreeks in een database opgeslagen vanuit een php-programma in utf8, tekens zoals éãçí enz. Worden vervangen door symbolen. bij het lezen geeft PHP ze goed weer, .Net geeft ze exact weer hoe ze in de database zijn opgeslagen. Ik weet dat het utf8 is, omdat notepad ++ de string correct weergeeft bij gebruik van die optie.
toegevoegd de auteur Sergio, de bron
@okrumnow: Bedankt, dat werkte perfect. Als u als antwoord plaatst, zal ik het bijwerken en markeren als geaccepteerd.
toegevoegd de auteur Sergio, de bron
'fout' is niet zo'n probleemrapport. Als u antwoorden wilt: voorbeelden, details, hex-weergaven.
toegevoegd de auteur Henk Holterman, de bron
toegevoegd de auteur okrumnow, de bron

1 antwoord

U moet de codering van de tekenreeks die u leest wijzigen

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

Check out this answer: Get correct output from UTF-8 stored in VarChar using Entity Framework or Linq2SQL?

4
toegevoegd