В моем приложении ASP.NET MVC я создаю ссылку mailto
, где тема и тело содержат символ фунта стерлингов.
В большинстве случаев это работает, но некоторые пользователи Outlook 2003/Chrome сообщают, что при нажатии на ссылку символ решетки отображается как £
, что мне кажется интерпретацией строки UTF-8 как ascii/windows-1252/. что угодно и т. д.
Я не уверен, как я должен кодировать это. В настоящее время я использую следующее:
public static HtmlString EncodeMailTo(this HtmlHelper hlp, string val)
{
var encoded = HttpUtility.UrlEncode(val).Replace("+", "%20");
return new HtmlString(encoded);
}
и в представлении:
<a href="mailto:?subject=@(Html.EncodeMailTo(Model.Offer.Heading))&body=@(Html.EncodeMailTo(Model.Offer.Requirement))" >
Link
</a>
Есть ли способ, которым я могу преобразовать это в другую кодировку (например, Windows-1252) перед тем, как использовать UrlEncoding? Я попытался преобразовать кодировку строки, а затем передать ее и кодировку, используемую в UrlEncode, но получить? вместо символов £ тогда.