2012-04-27 72 views
1

我從數據庫中返回一些數據,使用許多不同的方法輸入數據,通常從word複製和粘貼。字符編碼工作本地不活

而不是嘗試手動HtmlEncode每個最後一個字符我有明智的想法,使用頁面上的內容類型加載不同的字符集。目前我沒有做任何事情來覆蓋任何默認的內容類型。如果我在本地運行,則內容類型顯示爲utf-8,並出現「外來」字符。上傳時,內容類型以ISO-8859-1形式出現,「外來」字符出現爲問號(兩種類型......)。

然後,我重寫了使用Response.Charset = "utf-8";返回的字符集,儘管響應標頭正確顯示了utf-8,但我仍然使用問號代替正確的字符。請看下面的圖片:

當地頁

Local page, all characters appearing correctly

本地頁眉

Local page header

外部頁面(注意兩種類型的問號)

External page, notice two types of error question marks

外部頁眉

External page header

我已經按照http://htmlpurifier.org/docs/enduser-utf8.html但除了需要UTF-8我無法找到任何解決方案。

+2

頁面上是否有meta content-type元素? – Oded 2012-04-27 14:27:49

+0

是的,設置爲相同的utf-8。 – Chris 2012-04-29 15:39:57

+0

瀏覽器顯示的代碼頁是什麼? – Oded 2012-04-29 15:58:01

回答

0

已解決。仍然不確定所有事情是如何工作的,但我會解釋我做了什麼。

儘管標頭聲明內容類型是UTF-8,但這並沒有解決問題。正如Oded暗示的那樣,我在IIS> .Net Globalization中找到了兩個設置爲ISO-8859-1的設置(請求和響應)。

將這些更改爲UTF-8解決了這個問題。

至於爲什麼,我不確定,因爲標題似乎是相同的,所以如果任何人都可以解釋發生了什麼事情,那將是輝煌的。