關於頁面重構編碼問題

用字上有點專業  我來解釋一下頁面重構是什麼意思
就是把一個網頁複製下來  A網頁上面有一張圖  一段文字
那麼B網頁也要有相同的東西
就技術上來講  就是將A網頁的DOM element 照搬過去

當然  如果你希望在原頁面上面加上什麼效果  讓他"看起來"像是該頁面原本就有的功能
便可以在重構時插入一些 Javascript  我們的外掛小工具展示頁就是這樣做的
這樣可以在第三方網站還沒正式嵌入之前  就能夠先看看實際效果

但這樣會造成一個問題  假如原網頁是用big5編碼
而你的js是用utf-8 編碼  php輸出內容時也沒有特別指定編碼
重構出的網頁就會採用utf-8編碼(大概是預設值)
這時候遇到網頁原本的內容  即一堆big5編碼字串
輸出就會是一串亂碼

這時候要解決的話  就得指定輸出的編碼
要和原頁面編碼一致  ex: header('Content-Type: text/html; charset=big5');
但此時js裡面的中文又會變亂碼  因為它們本來都是utf-8
當然  有一些方法可以試  例如  在script屬性裡指定本script 的charset
但剛剛偶然間發現一招有意思的做法
是這樣  將所有的中文提示訊息寫在一個html檔裡(這個html檔是utf-8 並無關係)
為了識別  將每個字串用特殊id的div包起來
接著  在頁面初始時用jQuery 的load 函式把那個寫滿提示訊息的html載入
要用的時候就用 $("#id").text() 取用之
--> 這樣不會變成亂碼!  似乎會按照頁面的編碼設定呈現(用firebug看仍會是亂碼  但顯示時不會)
--> 這點值得研究

留言

熱門文章