javascript - Internet Explorer url 包含特殊字符的问题

标签 javascript c# asp.net-web-api2

我有一个带有 asp.net web api2 后端的 Angular 应用程序。

网址: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

关于javascript - Internet Explorer url 包含特殊字符的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59237617/

相关文章:

c# - 是否可以在自定义 OWIN 中间件方法中注册依赖项?

javascript - Google map v3,错误消息 "Google is undefined"

c# - 平滑淡入淡出的控制

c# - EditForm 需要模型参数或 EditContext 参数

c# - 在构建配置中设置 aspnetcore_environment

c# - 无法使用 http 客户端获取 asp.net Web API token

mysql - 在 Web api 中使用日期时间

javascript - JS进度条颜色不可见

javascript - 当我的窗口宽度小于 800px 时,如何将 js slider 效果更改为淡入淡出?

javascript - 限制输入框只能输入数字 0-9