Forum > ASP.NET 3.x > Språk - C#
Tjenare!
Har ett jQuery.ajax-GET-anrop som jag skickar till en Generic Handler bestående av bl.a. följande kod:
string formattedUri = String.Format(WebServiceURL, card.CardName, preferedLanguage); |
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
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?
Redigerad av pbf
Anledning:
Vad händer om du använder denna kod?
Encoding = System.Text.Encoding.Default
Har testat i princip alla enkodningar som går att testa.
Jag har kollat runt lite på nätet och de flesta verkar vara eniga om att det är just encodingen som är problemet.
Borde inte det gå att skicka med en andra parameter som ser till att den automatiskt kontrollerar encodingen? Har du testat med att bestämma encodingen som gäller för just svenska språket?
System.Text.Encoding.GetEncoding(1252)
Nope. Samma sak.
Kör du HTMLEncode innan du sparar data i databastabellen? Hur sparas å ä ö i databasen? Som "å ä ö", "å ä ö" eller på annat sätt?
Nejnej. Hehe, det har jag kollat ;-)
Det sparas som det ska. D.v.s. som "å ä ö".