2010年11月23日 星期二

Reporting Service 2008 R2 全形英文及符號出現亂碼

近日開始用 Reporting Service 2008 開發新的報表,我使用的是英文版。在佈署報表之後,透過 URL 去存取報表服務,我選擇的是 PDF 格式輸出。檢視 PDF 內容時,發現所有全形的英文或是標點符號,全都變成亂碼了。


有點不解的,是在預覽報表時,結果其實還蠻正常的。點選匯出 PDF 時,這份 PDF 內容也是正常的。



詳細去檢視報表內容的屬性時,發現在 FontFamily 的預設值是「Arial」,試著換別的字型,於是我選了「(新)細明體」,再重新佈署一次報表。發現換了細明體後, PDF 的內容就可以正常顯示全形的英文及標點符號了。



原來在 Reporting Service 裡,你所要呈現的文字,跟你所挑選的字形會有如此大的關係。但依常理來說,開發工具是不該讓設計者有如此困惑的情況,或許這次微軟也有什麼難言之隱也說不定(因為我在預覽報表時,執行匯出 PDF 是正常;但透過 URL 存取報表卻出現亂碼)。除了使用(新)細明體能解決上述我所遇到的問題外,測試其它種中文字型,「標楷體」也可以正常顯示,但,「微軟正黑體」則不行。

結論是,在 Reporting Service 2008 R2,透過 URL 存取 PDF 格式的報表時,若要正常顯示全形的英文及標點符號,必須使用「(新)細明體」或「標楷體」。

在 Reporting Service 2008 R2 後,開始支援匯出 word 格式的報表,最後也針對匯出 word , excel 格式報表去檢視是否有上述的問題,結果是 word 與 excel 都可以正常顯示。所以只有在報表格式是 PDF 時,需要特別注意這亂碼問題。


參考文章:
01:http://missice.pixnet.net/blog/post/24265150
02:http://social.msdn.microsoft.com/forums/zh-TW/240/thread/324bdcc8-7a60-4d1d-bd94-3e97fd701c99

沒有留言:

張貼留言