1

ASPX渲染法文重音字符有問題嗎?重音法文字符

我正在使用utf-8進行編碼。

我從來沒有過任何像這樣的問題(但由於這是第一次,我在ASP服務器上的工作有沒有解決?)

如 EVENEMENTS = A‰VA©nements Journéesfériées= Journéesféré裏埃斯

這是一個編碼問題?或者是否有任何特定的代碼需要放置才能正確呈現。

這裏是example

的頁面上寫着:

Pour recevoir les communications de l’école par courriel, veuillez nous indiquer votre adresse courriel

它應該閱讀:

Pour recevoir les communications de l'école par courriel, veuillez nous indiquer votre adresse courriel
+0

你有任何示例代碼? – 2010-03-01 17:40:12

+0

問題已經更新我添加了一個鏈接到網站 – 2010-03-01 17:42:58

+0

沒有代碼只有純粹的HTML,我將變成包括箔,但它是沒有被讀取的法語字符...樣品鏈接是在Q框 – 2010-03-01 17:51:56

回答

3

什麼問題,到底是什麼?您是否在文件頂部的頁面指令中設置了@ Codepage = 65001?你是否用正確的編碼標記了內容類型,以便客戶知道它獲得了什麼?

如果您看到問號,很可能是您沒有正確設置響應代碼頁。如果您看到兩個不相關的字符代替帶有變音符號的單個字符,那麼您還沒有告訴客戶需要知道如何將頁面視爲UTF-8,例如,

Response.CodePage = 65001 ; 
Response.CharSet = "utf-8" ; 

有asp.net和編碼的ASP處理略有區別,所以它也將是有益的,如果你是更具體的瞭解您所使用的技術,但應該讓你最的方式有。

在ASP.Net,你可以在你的web.config文件中設置的編碼站點範圍內,這樣就可以避免與Response.CodePage和Request.CodePage每一頁上搞亂。您仍然希望使用HTML中的meta http-equiv content-type元素或使用Response.Charset來標記響應字符集。

<globalization 
      requestEncoding="utf-8" 
      responseEncoding="utf-8" /> 

如果你不想使用的web.config這出於某種原因,你會使用<%@ CODEPAGE = 65001%>在你輸出任何文本,在頁面之前,你的.aspx文件指令。

它看起來像問題中的頁面包含錯誤編碼的UTF-8。內容是直接來自.aspx文件,還是從數據庫或其他內容中提取?

+0

嗨對不起,我想知道如何實現這一點,因爲我是所有這些ASP的新手,每次我嘗試將它發佈在我的源代碼中時,它都會給我一個運行時錯誤。我不知道我是否正確地把它放在正確的位置上。讓我知道。謝謝 – 2010-03-01 17:56:30

+0

內容直接來自文件,我該怎麼做? – 2010-03-01 18:07:11

+0

我認爲你的源文件已損壞,然後。我在十六進制編輯器中看到0a3c703e4a6f75726ec383c2a9657320,這轉換爲Journées。可能你沒有正確保存原始文本到utf-8。 Asp.Net沒有對文字進行任何轉換。基本上,它看起來像你已經對源文件進行了雙重編碼,所以你已經採用了UTF-8文本,將其視爲Windows-1252,並將文本轉換爲UTF-8。 – JasonTrue 2010-03-01 18:24:50

-1

而不是使用實際的人物,是有它不能被HTML編碼的理由嗎?

所以不是

EVENEMENTS

使用

&Eacute;v&eacute;nements 

,然後就變成了用戶的瀏覽器的責任,正確呈現的字符。

有一個在http://www.w3schools.com/tags/ref_entities.asp

+0

好吧,這是爲了讓我的生活更輕鬆,而不是編碼所有可以將其渲染到正確字符的任何東西...... – 2010-03-01 18:15:33

+1

當您選擇使用utf-8時,沒有理由使用命名實體,除了專門爲HTML。 – JasonTrue 2010-03-01 18:28:48

+0

使用實體會使源不可讀取給人類。另外,它會顯着增加文件大小。 – PauliL 2010-03-01 18:38:57

0

的完整列表,我的第一個thougt是,你不發送正確的頭爲UTF-8。 但使用標頭閱讀器web-sniffer顯示標頭是正確的。

這個問題似乎是你已經將文本轉換爲utf-8 兩次

當我看使用ISO-8859-1編碼網頁的HTML源代碼的Firefox「查看頁面源代碼」,您的示例文本顯示爲:

倒入recevoir萊德拉¢通信, ¬A「¢ÃƒÂ©油菜帕courriel,veuillez理性indiquer VOTRE住址courriel

即,在單詞L'高等已被轉換成5個字節2非ASCII字符,並且這些5個字節具有然後被再次轉換成12個字節。使用

0

嘗試:Server.HTMLEncode(strToShow)

-1

只是重命名文件.ASP代替的.aspx

這將解決這一問題。