2013-10-25 28 views
-1

我正在使用this插件和xml源。我有一个SP为此新闻提要生成XML文件并将其保存在所需的位置。下面是同一RSS XML在Chrome和Firefox中不起作用

SET @fileName = 'D:\YVXS\Ycube-Templates\SSTool\output\include\YNews\ycube.xml' 
SET @sqlStr = 'select ''<?xml version=""1.0"" encoding=""utf-8"" ?> <rss version=""2.0""> <channel> <title> SiteName </title> <description> Site Description </description> <link> http://www.website.com </link>'' + (SELECT LTRIM(RTRIM(TITLE)) AS title,CONVERT(VARCHAR(10),[PUB DATE],101) AS pubdate, ''dbo_News_view.php?editid1='' + cast([Sl No] as varchar(20)) AS link, ''dbo_News_list.php?dbo_New_list.aspx?'' AS [guid] FROM SSTOOL.DBO.NEWS item FOR XML AUTO, ELEMENTS) + (SELECT ''</channel> </rss>'')' 
SET @sqlCmd = 'bcp "'[email protected]+'" queryout ' + @fileName + ' -S "LOCALHOST\SQLSERVER" -U "sa" -P "source$1" -w -r -t -x' 
EXEC xp_cmdshell @sqlCmd 

一切都按预期在Chrome和Firefox的SQL查询,但在IE浏览新闻股票显示空白内容。当我手动打开XML文件并保存(记事本)没有任何更改时,新闻动态按钮预计开始在IE中工作。 上面的SP完全像上面提到的那样产生xml here

+0

请注意,我没有做任何改变XML文件,我打开它在一个记事本,并保存它,后新闻自动收报机插件开始工作在IE以及 –

+0

哼! (对一些愚蠢的选民)我发现这个问题与服务器R2中的编码有关,查询不必要地添加“ÿþ”,并且可以在IE页面的“view-source”中查看(不在铬或XML文件)。 –

回答

0

就像我想的那样,问题只出现在编码上。这些东西很难理解,因为主要的xml文件没有显示任何“不需要”的字符。我花了很长时间来分析xml文件的二进制副本,但是当我使用Internet Explorer检查html文件的源代码时,问题就变得很明显(因为Chrome源代码也绝对没问题,而且似乎只有IE浏览器有编码问题) 。

只需在BCP语句我能渲染正确的编码XML添加-c -C850 ..

这是我最终的解决方案

SET @fileName = 'D:\YVXS\Ycube-Templates\SSTool\output\include\YNews\ycube.xml' 
SET @sqlStr = 'select ''<?xml version=""1.0"" encoding=""utf-8"" ?> <rss version=""2.0""> <channel> <title> SiteName </title> <description> Site Description </description> <link> http://www.website.com </link>'' + (SELECT LTRIM(RTRIM(TITLE)) AS title,CONVERT(VARCHAR(10),[PUB DATE],101) AS pubdate, ''dbo_News_view.php?editid1='' + cast([Sl No] as varchar(20)) AS link, ''dbo_News_list.php?dbo_New_list.aspx?'' AS [guid] FROM SSTOOL.DBO.NEWS item FOR XML AUTO, ELEMENTS) + (SELECT ''</channel> </rss>'')' 
SET @sqlCmd = 'bcp "'[email protected]+'" queryout ' + @fileName + ' -S "LOCALHOST\SQLSERVER" -U "sa" -P "source$1" -r -t -x -c -C850' 
EXEC xp_cmdshell @sqlCmd 
相关问题