查询字符串问题,包含阿拉伯文本

Cod*_*der 2 c# asp.net url asp.net-mvc

我试图从url获取查询字符串使用此代码:

this.site_query = Request.Url.Query;
Run Code Online (Sandbox Code Playgroud)

当我得到网址时:

HTTP://本地主机:1751/AR /搜Q =سيارة

它给了我代码中的输出:

HTTP://本地主机:1751/AR /搜索Q =%D8%B3%D9%8A%D8%A7%D8%B1%D8%A9&位置=%D8%A3%D8%A8%D9%87%D8% A7,艾卜哈

但是我需要在查询字符串中发送的阿拉伯语文本.当查询字符串包含英文文本时,在c#中它是正确的.

Dav*_*idG 5

您在答案中显示的第二个URL没有任何问题,由于URL 中允许使用哪些字符的限制,它只是进行URL编码.

如果您希望在代码中获取部分查询字符串,可以使用以下代码:

var query = Request.QueryString["q"];
Run Code Online (Sandbox Code Playgroud)

此外,如果要在代码中构建URL,则应始终使用URL编码和可能包含非标准字符的值:

var urlEncodedValue = HttpUtility.UrlEncode(someValue);
Run Code Online (Sandbox Code Playgroud)