大写C#中包含HTML转义字符的字符串

时间:2019-03-29 14:38:05

标签: c# string capitalization html-escape-characters

我正在尝试对某些可能包含html转义字符的文本加标题。除了使用正则表达式,还有其他方法吗?这是一些示例代码:

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");


            string input = "B&G fried pie";
            string output = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(input.ToLowerInvariant());

            Console.WriteLine(output);  //Should be B&G Fried Pie
            Console.ReadKey();

        }
    }
}

我想到的另一种方法是替换&与&一起使用,做我的标题,然后将&替换为&amp

1 个答案:

答案 0 :(得分:1)

您可以使用System.Web.HttpUtility类来解码和编码html字符串,因此您的代码应类似于:

private static string ToTitleCase(string input)
{
    return input == null
        ? null
        : HttpUtility.HtmlEncode(CultureInfo.InvariantCulture.TextInfo
            .ToTitleCase(HttpUtility.HtmlDecode(input.ToLowerInvariant())));
}

在使用中,它看起来像:

Console.WriteLine(ToTitleCase("B&G fried pie"));