關於頁面重構編碼問題
用字上有點專業 我來解釋一下頁面重構是什麼意思
就是把一個網頁複製下來 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看仍會是亂碼 但顯示時不會)
--> 這點值得研究
就是把一個網頁複製下來 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看仍會是亂碼 但顯示時不會)
--> 這點值得研究
留言
張貼留言