阿拉伯语查询字符串问题(????中的值)

问题描述:

我在查询字符串中发送阿拉伯语值时,在服务器上检索它时,该值是错误的并被引号(????)替换。例如: : http://server/mypage.aspx?qs=مرحبا Request.QueryString(“qs”)的值是?????阿拉伯语查询字符串问题(????中的值)

请注意,Response.Write('مرحبا')正确执行。

有关此查询字符串问题的任何想法?

谢谢。

只是URL编码阿拉伯文字符串,它应该工作正常。

编辑:您必须在将字符串放入查询字符串之前对其进行编码。

举例来说,如果你要的URL编码空格字符,它会在你的查询字符串显示为%20,如下所示:

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

然后当你阅读的param1你网址解码它,你得到字符串“你好世界”

你也可以URL编码每一个字符,但对于普通字符它是毫无意义的。

+0

我直接在浏览器中键入查询字符串。当页面加载时,它通过参数传递QS到Silverlight对象,如下所示: “/> 当silverlight对象接收到参数(e.initparams [”qs“])时,它已经是???? 我应该在哪里编码字符串? – Zee99 2010-06-23 07:02:02

我也有类似的问题,并通过将下面一行在我的web.config文件解决了这个问题:

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

而这在我的HTML页面的头部分:

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

的非英文字符无法通过编码,

因此,您需要在重定向到目标页面之前对值进行编码,如下所示:

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

我认为你必须做'UrlDecode' – 2016-08-15 15:06:36

我发了阿拉伯文字在我的查询字符串

Arabic text in my query string

,当我resieved这个字符串时,后Server.UrlDecode

departmentName = Server.UrlDecode(departmentName); 

回编码 enter image description here

再次以阿拉伯文 enter image description here

因此就使用Server.UrlDecode(encodedString);

希望这有助于你