如何用HTML表示替换重音字符

时间:2011-06-09 10:22:00

标签: c# html diacritics

我想把像“rég”这样的字符串转换为“gr& eacute; 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());
}

- OLD

3 个答案:

答案 0 :(得分:2)

HttpUtility.HtmlEncode Method不会修改参数(C#中的字符串是不可变的!);它将编码版本作为新字符串返回:

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

在MVC上下文中编码文本的首选方法似乎是Html.Encode Helper Method

<%= Html.Encode("rég") %>

答案 1 :(得分:1)

图书馆HelperSharp有一个方法:EscapeAccentsToHtmlEntities

// The result will be: gr&eacute;gou
var escaped = "grégou".EscapeAccentsToHtmlEntities(); 

答案 2 :(得分:0)

快速谷歌搜索&#34; HTML实体编码C#&#34;带来了很多点击...如下所示:

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

还有执行此功能的框架类:

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