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

Asp.net 阿拉伯语查询字符串问题(值中的(?),asp.net,internationalization,query-string,Asp.net,Internationalization,Query String,我在querystring中发送一个阿拉伯语值,在服务器上检索时,该值是错误的,并被引号(??)替换。 例如: Request.QueryString(“qs”)的值是 请注意,Response.Write(‘محبا’)执行正确 你知道这个问题吗 谢谢。只需对阿拉伯字符串进行URL编码,就可以了 编辑:在将字符串放入查询字符串之前,必须对其进行URL编码 例如,如果要对空格字符进行url编码,它将在查询字符串中显示为%20,如下所示: 然后,当您阅读param1时,您可以对其进行URL解码,

我在querystring中发送一个阿拉伯语值,在服务器上检索时,该值是错误的,并被引号(??)替换。 例如: Request.QueryString(“qs”)的值是

请注意,Response.Write(‘محبا’)执行正确

你知道这个问题吗


谢谢。

只需对阿拉伯字符串进行URL编码,就可以了

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

例如,如果要对空格字符进行url编码,它将在查询字符串中显示为%20,如下所示:

然后,当您阅读param1时,您可以对其进行URL解码,得到字符串“hello world”


您也可以对每个字符进行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);

我在查询字符串中发送了阿拉伯语文本

当我释放这个字符串时,它被编码了

Server.UrlDecode

 departmentName = Server.UrlDecode(departmentName);
它又回到了阿拉伯语

所以只要使用
Server.UrlDecode(encodedString);


希望这对您有所帮助

我直接在浏览器中键入querystring。当页面加载时,它会通过参数将QS传输到Silverlight对象,类似这样:当Silverlight对象接收到参数(e.initparams[“QS”])时,它已经存在???。我应该在哪里准确编码该字符串?