Строки с заглавными буквами в C #, содержащие escape-символы html - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь присвоить заголовку текст, который может содержать 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 Ответ

1 голос
/ 29 марта 2019

Вы можете использовать класс 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"));
...