查询字符串包含阿拉伯语文本时出现问题
本文关键字:问题 文本 字符串 包含 阿拉伯语 查询 | 更新日期: 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。