查询字符串包含阿拉伯语文本时出现问题

本文关键字:问题 文本 字符串 包含 阿拉伯语 查询 | 更新日期: 2023-09-27 18:22:18

我正在尝试从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&位置=%D8%A3%D8%A8%D9%87%D8%A7,Abha

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

查询字符串包含阿拉伯语文本时出现问题

您在回答中显示的第二个URL没有任何问题,只是由于URL中允许使用的字符的限制而对其进行了URL编码。

如果你想在代码中获得查询字符串的一部分,你可以使用这样的代码:

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

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

var urlEncodedValue = HttpUtility.UrlEncode(someValue);

正如其他人已经说过的:这是一个编码的URL。你可以用解码

var decodedUrl = HttpUtility.UrlDecode(url);

var decodedUrl = Uri.UnescapeDataString(url);

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

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

用于编码url。