阿拉伯语查询字符串问题(????中的值)
问题描述:
我在查询字符串中发送阿拉伯语值时,在服务器上检索它时,该值是错误的并被引号(????)替换。例如: : http://server/mypage.aspx?qs=مرحبا Request.QueryString(“qs”)的值是?????阿拉伯语查询字符串问题(????中的值)
请注意,Response.Write('مرحبا')正确执行。
有关此查询字符串问题的任何想法?
谢谢。
答
只是URL编码阿拉伯文字符串,它应该工作正常。
编辑:您必须在将字符串放入查询字符串之前对其进行编码。
举例来说,如果你要的URL编码空格字符,它会在你的查询字符串显示为%20,如下所示:
http://foo.com/dosomething?param1=hello%20world
然后当你阅读的param1你网址解码它,你得到字符串“你好世界”
你也可以URL编码每一个字符,但对于普通字符它是毫无意义的。
答
我也有类似的问题,并通过将下面一行在我的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
我直接在浏览器中键入查询字符串。当页面加载时,它通过参数传递QS到Silverlight对象,如下所示: “/> 当silverlight对象接收到参数(e.initparams [”qs“])时,它已经是???? 我应该在哪里编码字符串? – Zee99 2010-06-23 07:02:02