我想把像“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
答案 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égou
var escaped = "grégou".EscapeAccentsToHtmlEntities();
答案 2 :(得分:0)
快速谷歌搜索&#34; HTML实体编码C#&#34;带来了很多点击...如下所示:
http://www.codeproject.com/KB/recipes/htmlencodingcsharp.aspx
还有执行此功能的框架类: