Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert character entities to their unicode equivalents

I have html encoded strings in a database, but many of the character entities are not just the standard & and <. Entities like “ and —. Unfortunately we need to feed this data into a flash based rss reader and flash doesn't read these entities, but they do read the unicode equivalent (ex “).

Using .Net 4.0, is there any utility method that will convert the html encoded string to use unicode encoded character entities?

Here is a better example of what I need. The db has html strings like: <p>John &amp; Sarah went to see $ldquo;Scream 4$rdquo;.</p> and what I need to output in the rss/xml document with in the <description> tag is: &lt;p&gt;John &amp;#38; Sarah went to see &amp;#8220;Scream 4&amp;#8221;.&lt;/p&gt;

I'm using an XmlTextWriter to create the xml document from the database records similar to this example code http://www.dotnettutorials.com/tutorials/advanced/rss-feed-asp-net-csharp.aspx

So I need to replace all of the character entities within the html string from the db with their unicode equivilant because the flash based rss reader doesn't recognize any entities beyond the most common like &amp;.

like image 435
Dan Avatar asked Apr 25 '11 22:04

Dan


People also ask

What function converts a character to its Unicode equivalent?

The Python ord() function converts a character into an integer that represents the Unicode code of the character.

How do I find Unicode value of a character?

Suppose a method getUnicode(char c) . A call getUnicode('÷') should return \u00f7 . Characters are already unicode in Java.


1 Answers

would HttpUtility.HtmlDecode work for you?

I realize it doesn't convert to unicode equivalent entities, but instead converts it to unicode. Is there a specific reason you want the unicode equivalent entities?

updated edit


        string test = "<p>John &amp; Sarah went to see &ldquo;Scream 4&rdquo;.</p>";
        string decode = HttpUtility.HtmlDecode(test);
        string encode = HttpUtility.HtmlEncode(decode);

        StringBuilder builder = new StringBuilder();
        foreach (char c in encode)
        {
            if ((int)c > 127)
            {
                builder.Append("&#");
                builder.Append((int)c);
                builder.Append(";");
            }
            else
            {
                builder.Append(c);
            }
        }
        string result = builder.ToString();
like image 62
RedDeckWins Avatar answered Sep 23 '22 03:09

RedDeckWins