Kom ihåg mig?
Home Menu

Menu


StreamReader konverterar å-ä-ö

 
Ämnesverktyg Visningsalternativ
Oläst 2009-02-12, 10:26 #1
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Tjenare!

Har ett jQuery.ajax-GET-anrop som jag skickar till en Generic Handler bestående av bl.a. följande kod:
Kod:
string formattedUri = String.Format(WebServiceURL, card.CardName, preferedLanguage);

HttpWebRequest webRequest = GetWebRequest(formattedUri);

HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();

string jsonResponse = string.Empty;

using (StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) {
jsonResponse = sr.ReadToEnd();
}
Skickar in ett ID som jag sedan använder för att hämta namnet på vederbörande, i detta fall "Göran Persson".

Under min debugging-tour i denna kod så skrivs Göran Persson ut som det ska tills sr.ReadToEnd() körs. Jag har Encoding.UTF8, databastabellen och därmed fältet är UTF-enkodat. I jQuery.Ajax-anropet har jag definierat:

contentType: "application/json; charset=utf-8"

och i min Generic Handler har jag högst upp:

context.Response.ContentEncoding = Encoding.UTF8;

Vad kan jag mer testa?

Detta måste på nåt sätt ske innuti min StreamReader då det är den som anropar response.GetResponseStream() och hämtar datan från Wikipedia. Just nu replace:ar jag efter StreamReaders using-block, vilket inte har nån betydelse egentligen förutom att det skrivs ut med rätt bokstäver nu, men den hämtar inte korrekt wikipediaartikel då hämtningen av data sker inne i StreamReadern.
Just nu returnerar den Göran Persson som: G\u00c3\u00b6ran Persson\n och när detta skickas tillbaka till min aspx-sida skrivs det ut som: Göran Persson. Jag kan ersätta "\u00c3" till "ö" och "\u00b6" till "ä", men grejen är att jag ska returnera data, och den hämtar datan i StreamReadern.

Har även kollat upp att avändaren skickar UTF8, så då ska jag även ta emot som UTF8 som jag redan gör.

Vad ska jag göra?
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-12, 13:31 #2
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Är filen sparad dom UTF8 ?
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-12, 14:23 #3
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Jag gör ett anrop till www.dapper.net för att hämta data från www.wikipedia.org, båda dessa sidor har UTF8 som Content Type.

Kan inte förstå detta.
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-12, 15:21 #4
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Jag har haft exakt samma bekymmer och min fullösning var att använda htmlencode för att få åäö att lira ordentligt.
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-12, 15:58 #5
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Hur då menar du? Exakt var bör jag HtmlEncode:a?
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-13, 16:36 #6
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Är filen sparad som UTF8? Alltså, när du väljer "Spara som", så kan man välja att filen skall sparas som UTF8.

Bara för att Content-Type är utf8 betyder det inte att filen är utf8, det har en tendens att ge många skumma problem.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-13, 16:43 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Jonas@Feb 13 2009, 17:36
Är filen sparad som UTF8? Alltså, när du väljer Spara som, så kan man välja att filen skall sparas som UTF8.
Bara för att Content-Type är utf8 betyder det inte att filen är utf8, det har en tendens att ge många skumma problem.
Det beror ju lite på vilket program man använder. Det går ofta att välja teckenkodning redan innan man sparar.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-13, 19:29 #8
Westmans avatar
Westman Westman är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jun 2004
Inlägg: 4 021
Westman Westman är inte uppkopplad
Klarade millennium-buggen
Westmans avatar
 
Reg.datum: Jun 2004
Inlägg: 4 021
Citat:
Originally posted by peterbf@Feb 12 2009, 16:58
Hur då menar du? Exakt var bör jag HtmlEncode:a?
Utifrån det lilla jag ser så skulle jag prova att köra htmlencode på jsonResponse
Westman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-14, 16:38 #9
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
peterbf peterbf är inte uppkopplad
Nykomling
 
Reg.datum: Sep 2008
Inlägg: 48
Nej, går inte.

Som sagt, allt sker innuti StreamReader:n, så det är la där jag måste göra nåt?
peterbf är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-02-14, 18:08 #10
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
Hämta teckenkodningen från HttpWebResponse

Kod:
Encoding.GetEncoding(response.CharacterSet);
digiArt är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017