2012-04-30 27 views
8

我已經在SDL Tridion中設置了發佈目標以將文件(aspx)推送爲UTF-8。SDL Tridion - 發佈的文件不是UTF-8編碼

頁面已發佈,但在瀏覽器中呈現時,我仍然看到一些奇怪的編碼問題。

我可以使用記事本編輯服務器上的文件,並將它們保存爲UTF-8,它修復了問題。所以我有點卡住,爲什麼會發生這種情況,並且令人討厭的是我之前看到過這種情況,但不記得它是如何解決的。

我已經在發佈目標中嘗試了一些其他選項,例如「系統默認」,但我仍然看到相同的問題。

感謝

約翰

回答

5

在IIS/.NET我從未有過的出版指標設置爲UTF-8 在web.config中設置此之後出現問題:

<globalization fileEncoding="UTF-8" requestEncoding="UTF-8" 
responseEncoding="UTF-8"/> 

如果您使用的是Windows的服務基於部署您可能需要將JVM編碼設置爲UTF-8,如here所述。

+1

感謝Puf和Nuno - 這確實是Elena關於這個主題的傑出文章中的一個觀點。將上面的節點添加到web.config文件的部分,完全如上解決了這個問題。 – johnwinter

8

你從埃琳娜嘗試these 7 steps to solve encoding issues

+0

我希望我也可以選擇這個作爲'獲勝的答案'這個鏈接是非常有用的,通過可能導致編碼問題,在.Net和Java環境中的各種項目。謝謝! – johnwinter

1

如果這是您從其他人繼承的系統,請檢查以確保代碼頁未在模板中明確設置。這將覆蓋發佈目標上的默認設置。

+0

絕對值得檢查。下面是在.Net 4中設置編碼請求和響應屬性的代碼(將它設置爲UTF-8):'%% Page RequestEncoding =「utf-8」ResponseEncoding =「utf-8」%> –

+0

Jonathon - 這是告訴ASP.NET以utf-8的形式提供頁面的代碼。在Tridion模板中,您還可以設置代碼頁,該代碼頁告訴Tridion以給定編碼生成其輸出,並覆蓋發佈目標上的設置。當然,ASP設置也是相關的:它們都必須聯合起來。 –

+0

啊是的。我錯誤地解釋了你的答案,並認爲當你提到輸出ASP.NET代碼時,「確保代碼頁未在模板中明確設置」。謝謝你澄清。 –