2015-01-19 2 views
2

У меня возникла проблема с написанием специальных символов в HTML В основном моя программа редактирует HTML-файл, и через текстовое поле я заменяю материал в html-файле.Написание HTML-файла со специальными символами

Однако я хочу, чтобы он мог добавлять символы типа «ç», «á», «ö» и т. Д. Я знаю, что в HTML эти символы имеют какой-то код, и я не хочу проверять каждую строку вручную и заменить эти буквы на эти специальные коды.

Должен быть способ преобразования строк и их вложения в HTML.

Вот что я пытался до сих пор:

string utf8_String = textBox8.Text; 
byte[] bytes = Encoding.Default.GetBytes(utf8_String); 
utf8_String = Encoding.UTF8.GetString(bytes); 
content = content.Replace("{8}", utf8_String); 

, но он не работает, какие-либо идеи?

+1

Если вы используете UTF-8 все так, как вы на самом деле не нужны эти HTML сущности ... –

+0

«Не работа "не является описанием проблемы. Что происходит? Покажите образец файла HTML до и после редактирования. –

+0

Проверьте мой ответ и скажите мне, помогли ли вы. – mybirthname

ответ

0

Вы должны использовать класс System.Web.HttpUtility, в частности методы HtmlEncode и HtmlDecode для работы с html-строками.

Метод HtmlEncode преобразует каждый специальный символ в вашу строку в эквивалентном объекте html; HtmlDecode делает полную противоположность.

Для получения более подробной информации см. MSDN reference.

0

Вам нужно прочитать текст TextBox.Text с помощью HtmlAgilityPack и после этого использовать метод HtmlEntity.Entitize. После этого вы устанавливаете значение Entitize в текстовое поле. Вот небольшой пример в консольном приложении.

public static void Main(string[] args) 
    { 
     string html = @"<!DOCTYPE html> 
<html> 
<body> 

<h1>My First Heading</h1> 

<p>My first paragraph.</p> 

<span>ç</span> 

</body> 
</html>"; 

     HtmlDocument doc = new HtmlDocument(); 
     doc.LoadHtml(html); 
     Console.WriteLine(HtmlEntity.Entitize(doc.DocumentNode).InnerHtml); 

} 

Чтобы установить Html Agility пакет вы можете использовать это в NuGet

PM> Install-Package HtmlAgilityPack 
Смежные вопросы