其他ASCII代码正在做同样的事情。
为了给你一些背景知识,这些代码是我从WordPress博客文章中读取的HTML的一部分。我正在使用我编写的一个C#WinForm应用程序将它们移植到BlogEngine.NET。我将它们移植到BlogEngine.NET(作为XML文件)时是否需要进行某种转换?
如果他们只是在没有任何干预的情况下正确显示,那肯定会很好。
这是来自其中一个WordPress源页面的代码片段:
<link rel="alternate" type="application/rss+xml" title="INRIX® Traffic » Taking the “E” out of your “ETA” Comments Feed" href="http://www.inrixtraffic.com/blog/2012/taking-the-e-out-of-your-eta/feed/" />
这是我在转换过程中输出的XML文件中的相应XML块:
<title>Taking the &#8220;E&#8221; out of your &#8220;ETA&#8221;</title>
更新
试过这个,但仍然没有骰子。
writer.WriteElementString("title", string.Format("<![CDATA[{0}]]>", post.Title));
...输出:
<title><![CDATA[Taking the &#8220;E&#8221; out of your &#8220;ETA&#8221;]]></title>
答案 0 :(得分:2)
由于您从Wordpress获取的数据已经编码,您可以将其解码为常规字符串,然后让XMLWriter为XML正确编码。
string input = "Taking the “E” out of your “ETA”";
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)
正如我在上面的评论中指出的那样:您的问题是您的Ü
被编码为&8220;
。在浏览器中输出时,它显示为Ü
我不知道您的移植是如何工作的,但要解决此问题,您需要确保ASCII代码中的&
不会被编码为&
答案 2 :(得分:0)
CDATA标签是否有机会解决问题?只需确保源XML文件中的文本正确即可。如果使用CDATA标签,则不需要&符号(在源中)。
<some_tag><![CDATA[Taking the “ out of your ...]]></some_tag>