我的ASP.NET Web api2后端有一个角度应用程序。
网址:https://myapp.test.com/world-news/Cura%C3%A7ao
上面的网址在Chrome,Firefox和Safari中可以正常工作,但IE浏览器存在问题。
将值:Cura%C3%A7ao发送到Web api后端时,对于Chrome和Firefox,Safari,解释为Curaçao,但对于IE浏览器,它解释为Cura.ao。
在这种情况下,上面的字符串包含特殊字符:ç,它被解释为�。
谁能帮助我知道如何解决此问题?
最佳答案
你可以尝试一下:
String result = Uri.EscapeUriString(Encoding.UTF8.GetString(Encoding.ASCII.GetBytes("Curaçao")));
请注意,Uri.EscapeUriString()不会转义&,== 、?和任何RFC保留字符。这意味着,如果您的查询参数包含这些字符中的任何一个,您将破坏URL。因此,似乎Uri.EscapeDataString()是要使用的方法。
资料来源:Problem with Uri.EscapeUriString() regarding accented characters