c # Преобразование кодировки? - PullRequest
2 голосов
/ 22 декабря 2009

У меня есть строка, которая выглядит следующим образом:

 À l'intérieur

Но это должно быть:

 À l'intérieur

Я попытался изменить конверсию. Я знаю, что это читается как кодировка ASCII. Поэтому я попытался использовать код:

      ASCIIEncoding ASCII  = new System.Text.ASCIIEncoding();
      Byte[] BytesMessage = ASCII.GetBytes(Title);
      Title = Encoding.UTF8.GetString(BytesMessage);

Я пытался переключаться между разными кодировками, но это мало помогало. Есть ли способ это исправить?

Thx!

Ответы [ 2 ]

6 голосов
/ 22 декабря 2009

Ну, на самом деле это не кодировка символа (например, ASCII или UTF-8), а скорее протокол более высокого уровня, определяющий escape-последовательности для произвольных символов - в данном случае SGML, который служит основой для HTML и XML.

Вы можете использовать метод HtmlDecode класса HttpUtility для его декодирования:

PS> Add-Type -AssemblyName system.web
PS> [web.httputility]::HtmlDecode("À l'intérieur")
À l'intérieur

Однако этот класс находится в пространстве имен System.Web, поэтому он, вероятно, не сразу доступен в проекте, отличном от ASP.NET.

3 голосов
/ 22 декабря 2009

Для перекодирования строк в кодировке HTML, подобных этой, используйте System.Web.HttpUtility.HtmlDecode(Title). Вам нужно будет сослаться на System.Web, если это не веб-приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...