2010-06-22 5 views

Répondre

2

Just URL Encode la chaîne arabe et devrait fonctionner correctement.

Editer: Vous devez encoder la chaîne avant de la placer dans la chaîne de requête.

Par exemple, si vous deviez url encode le caractère d'espace, il apparaît que% 20 dans votre querystring, comme ceci:

http://foo.com/dosomething?param1=hello%20world

Puis, quand vous lisez param1 vous URL Decode, et vous obtenez la chaîne "Bonjour tout le monde"

Vous pouvez également encoder chaque caractère, mais pour les caractères réguliers, c'est inutile.

+0

je tape le querystring directement dans le navigateur. quand la page se charge, elle transfère le QS à l'objet Silverlight via des paramètres, quelque chose comme ceci: "/> lorsque l'objet silverlight reçoit le param (e.initparams [" qs "]) il est déjà ???? Où exactement dois-je encoder la chaîne? – Zee99

1

J'ai eu un problème similaire et a résolu le problème en mettant la ligne suivante dans mon fichier web.config:

<globalization fileEncoding="windows-1256" 
    requestEncoding="windows-1256" responseEncoding="windows-1256"/>" 

Et cela dans la partie de la tête de ma page HTML:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
0

Le Les caractères non anglais ne peuvent pas être transmis sans être codés,

donc vous devez encoder la valeur avant de rediriger vers la page cible comme suit:

string text="مرحبا"; 
text=Server.UrlEncode(text); 
string url="http://server/mypage.aspx?qs="+text; 
Response.Redirect(url); 
+0

Je pense que vous devez faire 'UrlDecode' –

0

J'ai envoyé un texte arabe dans ma chaîne de requête

Arabic text in my query string

et quand je resieved cette chaîne avait été encodée enter image description here

après Server.UrlDecode

departmentName = Server.UrlDecode(departmentName); 

en arrière encore une fois à l'arabe enter image description here

donc il suffit d'utiliser Server.UrlDecode(encodedString);

Hope this vous aide