C# 将重音转义为十六进制

C# 将重音转义为十六进制,c#,html,unicode,hex,entity,C#,Html,Unicode,Hex,Entity,这是我的unicode字符串 > 戴萨斯特 上面的字符串需要转换为HTML实体(十六进制),如下所示 Dé;萨斯特 下面是代码,它将字符串转换为html实体,但使用十进制 有人能帮我得到想要的结果吗 static string EscapeAccentsToHtmlEntities(string source) { int length = source.Length; var escaped = new StringBuilder(); for (int

这是我的unicode字符串 >

戴萨斯特

上面的字符串需要转换为HTML实体(十六进制),如下所示

Dé;萨斯特

下面是代码,它将字符串转换为html实体,但使用十进制

有人能帮我得到想要的结果吗

static string EscapeAccentsToHtmlEntities(string source)
{
    int length = source.Length;
    var escaped = new StringBuilder();

    for (int i = 0; i < length; i++)
    {
        char ch = source[i];

        if ((ch >= '\x00a0') && (ch < 'Ā')) //U+{0:X4} 
        {
            escaped.AppendFormat("&#{0};", ((int)ch).ToString(NumberFormatInfo.InvariantInfo)); //"&#{0};"
        }
        else
        {
            escaped.Append(ch);
        }
    }

    return escaped.ToString();
}
static string EscapeAccentsToHtmlEntities(字符串源)
{
int length=source.length;
var escaped=新的StringBuilder();
for(int i=0;i='\x00a0')&&(ch<'Ā'))//U+{0:X4}
{
转义.AppendFormat(&#{0};,((int)ch).ToString(NumberFormatInfo.InvariantInfo));/“&#{0};”
}
其他的
{
转义。追加(ch);
}
}
返回转义的.ToString();
}
解释:
对于javascript/jquery,is的可能重复项

您只需对整数使用正确的
ToString()
格式:

escaped.AppendFormat("&#x{0};", ((int)ch).ToString("X4"));

将对
System.Web
的引用添加到项目中,并使用以下方法:

using System.Web;
using System.Text.RegularExpressions, 

private string HtmlEntityHex(string strToReplace)
{
    string strReplaced = HttpUtility.HtmlEncode(strToReplace);
    MatchCollection xMatches = Regex.Matches(strReplaced, @"&#(\d+);");
    foreach (Match xMatch in xMatches)
    {
        strReplaced = strReplaced.Replace(xMatch.Groups[0].Value.ToString(), "&#" + int.Parse(xMatch.Groups[1].Value).ToString("X").PadLeft(4, '0') + ";");
    }
    return strReplaced;
}

@mplungjan除了它是一种完全不同的编程语言之外?啊,因为它被标记为HTML,所以错过了C#-我从来没有看到过C#问题。-不过,这里似乎有一些关于C#too@mplungjan的答案,没错。我想这还是相当重复的,但它转换成&#x00E9;为什么?可能是因为你在最后一个字符串上做了额外的HTML转义?您也需要将其放在这个函数中,在
else
的情况下,然后不使用字符串。但是,如果没有更多的代码,我无法告诉您这是如何发生的。如果您使用某种xml编写器,请确保它将该内容作为HTML编写,以避免此类内容。谢谢您的帮助!