You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# MVC Core中如何将URL编码的波斯语路由转换为可读波斯语文本

解码URL编码波斯语路径的解决方案

在ASP.NET Core MVC环境下可通过以下几种方式实现解码,均原生支持波斯语等Unicode字符:

  • 方法1:直接取Request.Path的原生属性
    Request.HttpContext.Request.Path结构的Value属性默认已经是解码后的原始文本,无需额外处理,控制器内直接调用即可:
string originalPersianPath = Request.Path.Value;

如果取值仍为编码格式,使用下面的手动解码方法。

  • 方法2:使用WebUtility.UrlDecode解码
    这是.NET官方推荐的URL解码工具类,适配Core环境:
using System.Net;

// 传入你拿到的编码路径字符串
string encodedPath = "%D8%AE%D8%A7%D9%86%D9%87/%D8%B5%D9%81%D8%AD%D9%87%20%D8%A7%D8%B5%D9%84%DB%8C";
string decodedPath = WebUtility.UrlDecode(encodedPath);

执行后decodedPath就是你需要的原始波斯语路径 تست/خانه。

  • 方法3:使用Uri.UnescapeDataString解码
    如果路径包含特殊符号或多段路径分隔符,用这个方法稳定性更高,不会误处理路径结构:
string encodedPath = "%D8%AE%D8%A7%D9%86%D9%87/%D8%B5%D9%81%D8%AD%D9%87%20%D8%A7%D8%B5%D9%84%DB%8C";
string decodedPath = Uri.UnescapeDataString(encodedPath);

注意:不要使用旧版HttpUtility.UrlDecode,该API是ASP.NET Framework时代的遗留实现,Core环境下不推荐使用。如果解码后出现乱码,确认项目全局编码为UTF-8即可,ASP.NET Core默认配置就是UTF-8,一般不会出现乱码问题。

内容的提问来源于stack exchange,提问作者farshad fahimi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:27:07