像一颗晨土

常用链接

统计

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 艾尘 阅读(1387) 评论(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的国际化实现方式。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: