Sök  
 
Skribent Inlägget Löst
Google
 
     

  Forum » .NET 3.5 » Ändra encoding på string (request.form)  
 
Skriven av: jimmie | den 13 augusti 2008 Kl 15:06
Ändra encoding på string (request.form) Tråden är löst
Hej, Jag använder mobilstart.se för att ta emot inkommande text/bild från SMS/MMS.

Det funkar som så att när man skickar ett mess till 72500 skickar mobilstart vidare all information till min sajt via ett http-anrop.


jag kan då enkelt plocka ner texterna som skickats via vanlig Request.Form[""]

problemet är att jag får inte åäö att fungera, det blir istället bara ?.

Mobilstart säger "Det är iso-8859-1 encoding på alla texter som skickas vidare."

hur gör jag för att ändra encoding på det jag tar emot eller hur löser jag detta helt enkelt?

tack

Redigerad av: jimmie

Har nu testat följande:

Kod:


  public static string ConvertString(string convertMe)
  {
  Encoding asciiEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1", new EncoderReplacementFallback(""), new DecoderReplacementFallback());

  Encoding utf8Encoding = System.Text.Encoding.GetEncoding("UTF-8");

  byte[] utf8Bytes = utf8Encoding.GetBytes(convertMe);

  byte[] asciiBytes = Encoding.Convert(utf8Encoding, asciiEncoding, utf8Bytes);

  return asciiEncoding.GetString(asciiBytes);

  }




enligt http://bytes.com/forum/thread471481.html

nu försvann mina ?, men min åäö är nu helt borta..


Antal svar 14



NAVIGERING: [1] 2
Skriven av: Tant102 | den 13 augusti 2008 Kl 15:59
Grejen är att en sträng aldrig har en encoding, däremot så behöver du en encoding för att representera en sträng som bytes. Kolla på ditt @Page-direktiv, jag har för mig att du kan ställa in encoding på den. Din metod har redan fått en felaktigt parsad sträng, med stor sannolikhet så är datan redan felaktig.
Skriven av: jimmie | den 14 augusti 2008 Kl 09:23
ok, tack.

det enda jag hittade på @Page var  ResponseEncoding, vilket jag testade att sätta till iso-8859-1 utan resultat.


jag hittade även:
this.Page.Request.ContentEncoding

vilket jag testade att sätta till både
System.Text.Encoding.GetEncoding("ISO-8859-1");
System.Text.Encoding.UTF8;

inget av dem hjälpte.


Kan det finnas andra alternativ?


Skriven av: BlackMustard | den 14 augusti 2008 Kl 12:02
finns det någon möjlighet att du kan få ut loggar eller så av den text som skickas till dig från mobilstart.se? bara så att du säkert kan utesluta att du får felaktig data från början...
Skriven av: vimpyboy | den 14 augusti 2008 Kl 21:27
Du kan sätta encoding direkt i web.config. Googla efter globalization-elementet.
Skriven av: jimmie | den 14 augusti 2008 Kl 21:35

Citerar BlackMustard:


finns det någon möjlighet att du kan få ut loggar eller så av den text som skickas till dig från mobilstart.se? bara så att du säkert kan utesluta att du får felaktig data från början...


Jag skall kolla detta! tack


Citerar vimpyboy:


Du kan sätta encoding direkt i web.config. Googla efter globalization-elementet.


Vill jag det då?
Det påverkar ju i så fall hela sajten (http://www.brightville.com) och jag har inte tidigare stött på detta typ av problem.

Skriven av: jimmie | den 14 augusti 2008 Kl 22:31
Globalization tricket gjorde susen.

Kod:

<globalization uiCulture="sv-SE" culture="sv-SE" requestEncoding="ISO-8859-1" />


funkade fint! ...för just detta ändamål :(


alltså det fuckade upp mycket annat på sajten så jag var tvungen att ta bort requestEncoding i globalization objekten igen.


försöker sätta det på bara just denna sida men lyckas inte.
tog en titt på: http://msdn.microsoft.com/en-us/library/39d1w2xf(VS.80).aspx

To set the encoding for an individual page, set the RequestEncoding and ResponseEncoding attributes of the @ Page directive

men när jag försöker peta in RequestEncoding i @Page så får jag följande felmeddelande:
Error    102    Error parsing attribute 'requestencoding': Type 'System.Web.UI.Page' does not have a public property named 'requestencoding'


vad gör jag för fel?
Skriven av: BlackMustard | den 14 augusti 2008 Kl 22:43
exakt hur gör du för att "peta in RequestEncding i @Page"?
Skriven av: jimmie | den 14 augusti 2008 Kl 22:48
Kod:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MobilstartForwardRecieve.aspx.cs" Inherits="MobilstartForwardRecieve" RequestEncoding="ISO-8859-1" %>

Skriven av: BlackMustard | den 14 augusti 2008 Kl 22:56
det ska nog vara ResponseEncoding... ;)

kolla in http://msdn.microsoft.com/en-us/library/system.web.ui.page_members.aspx för alla sidans egenskaper
Skriven av: jimmie | den 14 augusti 2008 Kl 23:03
nej jag tror det skall vara Request för jag har problemet när jag tar emot text via Request.Form, Response påverkar texten som sajten spottar ur sig. alltså det motsatta.

det är konstigt för RequestEncoding finns inte under länken du angav men under http://msdn.microsoft.com/en-us/library/39d1w2xf(VS.80).aspx som jag länkade till ovan finns det med.

hmm
NAVIGERING: [1] 2
 
     

  Svara på inlägg  
 
Du måste vara medlem på ASPsidan för att kunna skriva i forumet.
För att bli medlem klicka här.
 
     

  » Logga in  
 
Användarnamn

Lösenord

 
     

  » Bli medlem  
  Bli medlem på ASPsidan!  
     

     
  Microsoft  
     

  » Partners  
  Comsolvia  
     
  » ANNONS  
  ingen annons än  
     

  » Senast online  
  Endast för inloggade  
  Antal inloggade: 1  
     

Copyright © 2007 www.ASPsidan.se
ingen sponsrar längre ASPsidan med Dedikerad Server
ASPsidan RSS
   
 XHTML / CSS
Det tog 0,3584 sekunder att ladda sidan