2013-10-25 68 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 
相關問題