試圖製作我的第一個ASP.NET頁面。在XP上獲得IIS 5.1,配置爲運行.NET 4.創建一個新的虛擬目錄並添加一個.aspx文件。當我瀏覽文件時,非ASCII字符已損壞。例如,一個ü(U + 00FC)被轉換爲ü(U + 00C3 U + 00BC),這是我不能得到這個是UTF-8的等價物。我需要web.config用於非ASCII字符嗎?
我試圖利用這一的各種方式:
- 我確信.aspx文件確實是編碼爲UTF-8。
我設置meta標籤:
<meta charset="UTF-8">
我設置虛擬目錄來處理的.aspx爲
text/html;charset=utf-8
下IIS HTTP頭>文件類型。- 我加了
ResponseEncoding="utf-8"
到<%@ Page ... %>
。 - 我在
HttpUtility.HtmlEncoded()
中插入了字符串。現在將其轉換爲Ã ¼(U + 00C3U + 00BC)。
最後,我發現2種方法奏效:
- 爲字符引用更換非ASCII字符,如
ü
這在上世紀90年代,就沒有今天還行。 添加web.config文件的虛擬目錄,與此內容:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <globalization fileEncoding="utf-8"/> </system.web> </configuration>
沒有fileEncoding
設定,ASP.NET分析器將讀取的.aspx和腐敗的每一個非ASCII字符而不嘗試推斷文件編碼。這只是你專業人員學會與之共處的東西,還是我錯過了一些東西?是一個web.config文件,其中包含全球化設置方式來處理.aspx頁面上的「國際」字符?我不記得有與PHP類似的問題,所以我很困惑爲什麼這與ASP.NET有關。
我發現使它沒有web.config文件工作的另一種方式:保存.aspx頁,帶字節順序標記(BOM)的UTF-8。一般來說,UTF-8不應該需要BOM,因爲字節順序在編碼中是隱含的,但是微軟有傳統要求它,這可能是正確的做法,因爲它推斷更多的文件編碼強大的。我想這是我正在尋找的解決方案,但仍然歡迎評論。 –
你應該考慮安裝微軟Web平臺安裝程序,並使用IIS Express 7.5和Web矩陣或VS 2010的快遞 – Aviatrix