为什么“不在我的网页上显示为引用?

时间:2013-04-10 20:41:49

标签: html wordpress ascii blogengine.net

其他ASCII代码正在做同样的事情。

为了给你一些背景知识,这些代码是我从WordPress博客文章中读取的HTML的一部分。我正在使用我编写的一个C#WinForm应用程序将它们移植到BlogEngine.NET。我将它们移植到BlogEngine.NET(作为XML文件)时是否需要进行某种转换?

如果他们只是在没有任何干预的情况下正确显示,那肯定会很好。

这是来自其中一个WordPress源页面的代码片段:

<link rel="alternate" type="application/rss+xml" title="INRIX® Traffic &raquo; Taking the &#8220;E&#8221; out of your &#8220;ETA&#8221; Comments Feed" href="http://www.inrixtraffic.com/blog/2012/taking-the-e-out-of-your-eta/feed/" />

这是我在转换过程中输出的XML文件中的相应XML块:

<title>Taking the &amp;#8220;E&amp;#8221; out of your &amp;#8220;ETA&amp;#8221;</title>

更新

试过这个,但仍然没有骰子。

writer.WriteElementString("title", string.Format("<![CDATA[{0}]]>", post.Title));

...输出:

<title>&lt;![CDATA[Taking the &amp;#8220;E&amp;#8221; out of your &amp;#8220;ETA&amp;#8221;]]&gt;</title>

3 个答案:

答案 0 :(得分:2)

由于您从Wordpress获取的数据已经编码,您可以将其解码为常规字符串,然后让XMLWriter为XML正确编码。

string input = "Taking the &#8220;E&#8221; out of your &#8220;ETA&#8221;";
string decoded = System.Net.WebUtility.HtmlDecode(input);
//decoded = Taking the "E" out of your "ETA"

这可能效率不高,但由于这听起来像是一次性转换,我认为这不是一个问题。

此处提出了类似的问题:How can I decode HTML characters in C#?

答案 1 :(得分:0)

正如我在上面的评论中指出的那样:您的问题是您的&#220;被编码为&amp;8220;。在浏览器中输出时,它显示为&#220;

我不知道您的移植是如何工作的,但要解决此问题,您需要确保ASCII代码中的&不会被编码为&amp;

答案 2 :(得分:0)

CDATA标签是否有机会解决问题?只需确保源XML文件中的文本正确即可。如果使用CDATA标签,则不需要&符号(在源中)。

<some_tag><![CDATA[Taking the “ out of your ...]]></some_tag>