0

其他 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>
4

3 回答 3

3

由于您从 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"

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

这里问了一个类似的问题:如何在 C# 中解码 HTML 字符?

于 2013-04-11T18:13:33.320 回答
0

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

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

于 2013-04-10T20:54:01.107 回答
0

CDATA标签有没有可能解决这个问题?只需确保源 XML 文件中的文本正确无误。如果您使用 CDATA 标签,则不需要&符号魔法(在源代码中)。

<some_tag><![CDATA[Taking the “ out of your ...]]></some_tag>
于 2013-04-10T20:59:35.963 回答