簡體   English   中英

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

[英]How to replace accented characters by their HTML representation

我想將像“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());
}

- 老的

HttpUtility.HtmlEncode 方法不修改參數(C# 中的字符串是不可變的;):它將編碼版本作為新字符串返回:

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

在 MVC 上下文中編碼文本的首選方法似乎是Html.Encode Helper Method

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

HelperSharp有一個用於此目的的方法: EscapeAccentsToHtmlEntities

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

對“HTML 實體編碼 C#”的快速谷歌搜索帶來了很多點擊...如下所示:

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

還有執行此 function 的框架類:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM