像一顆晨土

          常用鏈接

          統計

          blogs

          life

          最新評論

          Webwork Forward 2 html

          Web瀏覽器是否能正確顯示一個Web頁通常依賴兩個條件:
          一、頁面的編碼(文件編碼).

          二、該頁定義的contentType.

          其中頁面的編碼是決定性的因素。兩者一致是,瀏覽器會正常顯示內容,否則有可能產生亂碼現像。

          如果一個Html文件,文件編碼為UTF-8。contentType設為相同。則使用IE或Firefox查看,兩者都會自動選擇正確的編碼形式來解釋。當我將contentType設為GB2312,以為會造成亂碼,結果不會。我認為原因是這樣的:文件編碼起決定作用,加上Utf-8包括了GB該有的字符,所以這種情況是以大的來認識小的。沒問題。(不知是否有理解錯誤 :P)。

          上述情況為使用瀏覽器直接把開網頁文件的結果。當我使用Webwork的Action時,將Html文件作為結果時(結果類型為dispatcher),亂碼出現了!文件編碼為UTF-8,頁面定義的ContentType為UTF-8。但是偏偏使用IE及FireFox均得到亂碼的結果。郁悶中用Firefox查看了頁面的屬性,驚奇地發現頁面編碼居然是GB2312。我猜想是Webwork在Dispatch頁面的時候使用了默認的編碼,把本來UTF-8編碼的頁面重新用GB2312編碼一次。于是試著在Action里面獲得Response并把字符編碼改為UTF-8。最后發現結果依然一樣。這時,我覺得在Action完成后,Webwork接下來使用了Response,我的設置被重置了。于是決定自已寫一個Servlet,指定字符編碼為UTF-8,結果直接Forward到我的Html頁面。結果正確了!再查看頁面信息,兩者都是UTF-8了。

          平時使用Webwork來Dispatch的都是Jsp,不曾出現過這樣的情況。原因是Jsp仍需要編譯,編譯時會讀取Jsp頁面指定的ContentType來決定Response里的字符編碼。HTML文件則不一樣。這時只能使用默認編碼。如果我的工程是Gb2312,那根本就不存在剛才所講的問題的。

          posted on 2006-03-26 00:33 艾塵 閱讀(1420) 評論(4)  編輯  收藏 所屬分類: pick up

          評論

          # re: Webwork Forward 2 html 2006-03-26 01:56 emu

          遇到這樣的問題,不需要靠猜的,用IeHttpHeader或者HttpSniffer之類的工具直接檢查服務器的輸出中的http header部分是否正確的聲明了contentType應該就可以定位問題的所在了。  回復  更多評論   

          # re: Webwork Forward 2 html 2006-03-26 21:43 艾塵

          Forward?在這個時候不妨來一個重定向。問題解決!
            回復  更多評論   

          # re: Webwork Forward 2 html 2006-03-28 20:47 fanse

          不明白是什么意思

          歡迎訪問:http://www.shuangzixing.net  回復  更多評論   

          # re: Webwork Forward 2 html 2006-05-30 16:36 wangxq

          說個題外話,有沒有關注過webwork的國際化實現方式。  回復  更多評論   

          主站蜘蛛池模板: 永德县| 大宁县| 古浪县| 酉阳| 延川县| 广西| 泸溪县| 凤山市| 海林市| 泸西县| 沿河| 正定县| 朝阳县| 红安县| 九龙坡区| 白水县| 龙川县| 黄梅县| 四平市| 南陵县| 二连浩特市| 当涂县| 时尚| 株洲县| 高阳县| 思茅市| 盱眙县| 定边县| 淮安市| 南郑县| 大余县| 博客| 宣城市| 手游| 柳江县| 金川县| 石泉县| 昌平区| 峨边| 永昌县| 当涂县|