包含阿拉伯文

时间:2015-11-18 09:57:29

标签: c# asp.net asp.net-mvc url

我正在尝试从url获取查询字符串使用以下代码:

this.site_query = Request.Url.Query;

当我得到网址时:

  

http://localhost:1751/ar/search?q=سيارة

它在代码中给出了打击输出:

  

http://localhost:1751/ar/Search?q=%D8%B3%D9%8A%D8%A7%D8%B1%D8%A9&Location=%D8%A3%D8%A8%D9%87%D8%A7,Abha

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

3 个答案:

答案 0 :(得分:5)

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

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

var query = Request.QueryString["q"];

此外,如果您要在代码中构建网址,则应始终URL encode以及可能包含非标准字符的值:

var urlEncodedValue = HttpUtility.UrlEncode(someValue);

答案 1 :(得分:4)

正如其他人所说:它是一个编码的URL。您可以使用

进行解码
var decodedUrl = HttpUtility.UrlDecode(url);

var decodedUrl = Uri.UnescapeDataString(url);

这就是你需要的吗?如果没有,请告诉我们您的预期输出。

答案 2 :(得分:2)

用于此用途 string name = HttpUtility.UrlEncode(Encrypt(txtName.Text.Trim()));     string technology = HttpUtility.UrlEncode(Encrypt(ddlTechnology.SelectedItem.Value));

用于编码网址。