像一顆晨土

          常用鏈接

          統(tǒng)計

          blogs

          life

          最新評論

          Webwork Forward 2 html

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

          二、該頁定義的contentType.

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

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

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

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

          posted on 2006-03-26 00:33 艾塵 閱讀(1415) 評論(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的國際化實現(xiàn)方式。  回復  更多評論   

          主站蜘蛛池模板: 广饶县| 昌图县| 无棣县| 饶阳县| 泸溪县| 琼结县| 安康市| 南木林县| 治多县| 仪陇县| 大英县| 弋阳县| 芜湖市| 赞皇县| 琼中| 普宁市| 宣恩县| 安泽县| 丁青县| 四子王旗| 甘谷县| 和顺县| 常德市| 曲麻莱县| 龙泉市| 宜州市| 大化| 旌德县| 仁怀市| 安顺市| 马关县| 大方县| 佛冈县| 小金县| 随州市| 蛟河市| 石景山区| 镇宁| 崇左市| 漠河县| 陇川县|