FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Nykomling
|
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(); } 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? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Är filen sparad dom UTF8 ?
|
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Nykomling
|
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. |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Klarade millennium-buggen
|
Jag har haft exakt samma bekymmer och min fullösning var att använda htmlencode för att få åäö att lira ordentligt.
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Nykomling
|
Hur då menar du? Exakt var bör jag HtmlEncode:a?
|
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Ä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. |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Supermoderator
|
Citat:
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Klarade millennium-buggen
|
Citat:
|
|||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Nykomling
|
Nej, går inte.
Som sagt, allt sker innuti StreamReader:n, så det är la där jag måste göra nåt? |
||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Har WN som tidsfördriv
|
Hämta teckenkodningen från HttpWebResponse
Kod:
Encoding.GetEncoding(response.CharacterSet); |
||
![]() |
![]() |
Svara |
|
|