關於shtml頁面include問題解決方案

來源:互聯網
上載者:User
這幾天再做網站靜態化工作,本以為很簡單的事情,不想實際實現過程中還是遇到了些小問題 頁面上有一些是公用嵌套頁如head.inc,bottom.inc等,為了修改維護方便決定使用shtml的include來解決,隨之問題來了 <!--#include file=”head.inc”-->這樣包含後發現頁面上會出現一個空行,網上查資料後發現是因為utf-8的BOM頭引起的,於是測試結果如下head.inc編碼為utf-8有bom時*.aspx頁面<!--#include file=”head.inc”-->沒有任何問題*.shtml頁面<!--#include file=”head.inc”-->在引用的地方會出現一個空行head.inc編碼為utf-8無bom時*.aspx頁面<!--#include file=”head.inc”-->頁面出現亂碼*.shtml頁面<!--#include file=”head.inc”-->沒有任何問題google了一番,找到如下解決方案,希望對遇到此問題的朋友有所協助 解決方案1.1.修改head.inc編碼格式為utf-8無bom2.設定檔中添加以下節點  <system.web>   <globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/>  </system.web>  這裡最主要的是fileEncoding="utf-8"可以解決.aspx檔案include的亂碼問題  下面是用c#建立無bom的utf8編碼檔案方法(預設建立的檔案都是utf-8+bom的)System.Text.UTF8Encoding utf8=new System.Text.UTF8Encoding(false);            using (StreamWriter sr = new StreamWriter(filePaht, false, utf8))            {                sr.Write(fileContet)            } 這樣以後indclude的空行和亂碼問題就都解決了  解決方案2.head.inc檔案編碼為utf-8+bom(這樣可以避免.aspx檔案include的亂碼問題)在需要include地方這樣寫<!--#<!--#include file="head.inc"-->在需要include的檔案中如head.inc頭部加上一段注釋如:<!--bom-->這樣以後可以實現同樣效果ps:這種方式時需要添加註釋的地方必須在head.inc頂部,不可以這樣寫<!--#<!--#include file="head.inc"--><!--bom--> 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.