Как заменить акцентированные символы их представлением HTML - PullRequest
1 голос
/ 09 июня 2011

Я бы хотел преобразовать строки типа "rég" в "grégou".

Я временно написал некоторый код, который вручную изменяет наиболее распространенные акценты, но я хотел бы получить тот, который преобразует каждый акцент в его HTML-эквивалент.

У кого-то есть идея?:)

ps: я пробовал что-то, но это не работает ...

C # код:

public static MvcHtmlString MyEncode(this HtmlHelper htmlHelper, string text)
{
    StringBuilder builder = new StringBuilder();
    Byte[] bArray;


    HttpUtility.HtmlEncode(text);

    bArray = System.Text.Encoding.GetEncoding(850).GetBytes(text); 

    String chaine = "";


    for(int i=0; i<bArray.Length; i++)
    {
        chaine = chaine + (char)bArray[i];
    }

    HttpUtility.HtmlEncode(chaine);
    builder.Append(chaine);
    return MvcHtmlString.Create(builder.ToString());
}

- СТАРЫЙ

Ответы [ 3 ]

2 голосов
/ 09 июня 2011

Метод HttpUtility.HtmlEncode не изменяет аргумент (строки в C # являются неизменяемыми!); возвращает закодированную версию в виде новой строки:

string encoded = HttpUtility.HtmlEncode("rég");

Предпочитаемый способ кодирования текста в контексте MVC - это Html.Encode Helper Method :

<%= Html.Encode("rég") %>
1 голос
/ 12 июля 2014

В библиотеке HelperSharp есть метод для этой цели: EscapeAccentsToHtmlEntities

// The result will be: gr&eacute;gou
var escaped = "grégou".EscapeAccentsToHtmlEntities(); 
0 голосов
/ 09 июня 2011

Быстрый поиск в Google по запросу "Кодировка HTML-кода C #" вызывает много обращений ... как показано ниже:

http://www.codeproject.com/KB/recipes/htmlencodingcsharp.aspx

Существуют также каркасные классы, которые выполняют эту функцию:

http://msdn.microsoft.com/en-us/library/73z22y6h.aspx

...