Sätta rätt codepage i Excelexport
Jag exporterar ett DataGrid till Excel bl.a. genom att sätta
Response.ContentType = "application/vnd.ms-excel"
I Excel-arket blir å, ä och ö konstiga tecken. Jag gissar på att man måste sätta Response.Charset till något, men jag vet inte vad. Databas collation på textfälten är SQL_Latin1_General_CP1_CI_AS.
Nån som vet vilket Charset man ska använda, eller om det är något annat?
Svara
Sv: Sätta rätt codepage i Excelexport
Testa med UTF-8
/Fredrik Normén NSQUARED2
http://fredrik.nsquared2.com
Svara
Sv: Sätta rätt codepage i Excelexport
Hmm, tycker det borde fungera om din kolumn i databasen stödjer unicode (nvarchar etc).
Jag vet att vi har haft problem med detta själv innan, men läste det genom att köra med UTF-8 charset samt sparade själva sidan som genererade vår data till UTF-8. Kanske kan vara värt ett försök?
/Fredrik Normén NSQUARED2
http://fredrik.nsquared2.com
Svara
Sv: Sätta rätt codepage i Excelexport
Kolumnerna i databasen är nvarchar allihop.
Hur menar du med att jag ska spara sidan till UTF-8?
Som det är nu så öppnas ett nytt fönster och man får valet Öppna/Spara. Väljer man Öppna så öppnas Excel-arket i browsern. Väljer man Spara så sparar man ner det på hårddisken.
Svara
Sv: Sätta rätt codepage i Excelexport
Hej!
Du behöver även sätta
Response.ContentEncoding
till något lämpligt.
ContentEncoding bestämmer på vilket sätt dina unicode-strängar skall omvandlas till en teckenström i en viss encoding.
Response.Charset sätter i HTTP-headern att du påstår att det som kommer är t.ex. UTF-8, och det kan webbläsaren använda för att decodea de bytes som kommer till något läsbart.
Men någon encoding görs inte när du sätter den.
När ContentEncoding och Charset diffar och t.ex. Ö ligger på olika bytevärden i respektive encoding, då får man "konstiga tecken".. :)
Ola
Svara
Sv: Sätta rätt codepage i Excelexport
Nu har jag satt
Response.Charset = "UTF8"
Response.ContentEncoding = System.Text.Encoding.UTF8
och
Response.Charset = "UTF-8"
Response.ContentEncoding = System.Text.Encoding.UTF8
Men får fortfarande samma fel.
Trött man blir! :(
Svara
Sv: Sätta rätt codepage i Excelexport
Tjohoo!
Fick det att funka
Response.Charset = ""
Response.ContentEncoding = System.Text.Encoding.Default
Svara
Sv: Sätta rätt codepage i Excelexport
Jag har i en applikation löst problemet genom att köra server.htmlencode på innehållet i cellerna. Det fungerade också, utan att jag ändrat ContentEncoding. Exporterade då iofs en vanlig Table till Excel.
/Pelle
Svara