В моем приложении 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, но получить? тогда вместо символов £.