rocket
走在agile的小路上
BlogJava
首页
新随笔
联系
聚合
管理
随笔-55 评论-208 文章-0 trackbacks-0
关于workshop(原nitrox m7)的utf-8中文乱码问题解决
bea workshop studio(原nitrox m7)确实是个好东西,但是我再使用它的jsp编辑器打开含有utf-8的中文jsp页面时其中的中文是乱码,而且你修改有乱码的页面后,再用别的编辑器打开发现原来正常的中文也都变成乱码了。
为了解决问题我在google和baidu的搜索了好久没有找到方法,于是我到m7的论坛(
http://forums.m7.com/forum/index.php
)看看有没有解决方法。
终于我找到这样一个记录
http://forums.m7.com/forum/viewtopic.php?t=463&start=0&postdays=0&postorder=asc&highlight=encoding
其中m7 support给出的解释是这样的:
NitroX looks
for
a meta tag to determin the charset that should be used to encode the page file. The page directive is usually used to determin the charset used by the server to serve the page to the browser. These
2
are not the same (
for
good reasons).
So,
try
something like:
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=UTF-8
"
/>
M7 Support
所以可以知道,workshop的jsp编辑器在打开jsp页面时首先是从meta的标签中读取页面的编码的。
于是,我先用其它的编辑器(我用的是dw8)打开有问题的jsp页面,然后在其中添加meta标签
<%
@ page language
=
"
java
"
pageEncoding
=
"
UTF-8
"
%>
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.01 Transitional//EN
"
>
<
html
>
<
head
>
<
title
>
下部框架页
</
title
>
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=UTF-8
"
>
<
meta http
-
equiv
=
"
pragma
"
content
=
"
no-cache
"
>
<
meta http
-
equiv
=
"
cache-control
"
content
=
"
no-cache
"
>
<
meta http
-
equiv
=
"
expires
"
content
=
"
0
"
>
。。。。。。。。。。
然后再用workshop的编辑器打开,发现中文显示正常了,本以为这样问题就结束了
但是当我修改另外一个页面后,用workshop打开发现依然是乱码
<%
@ page language
=
"
java
"
pageEncoding
=
"
UTF-8
"
%>
<%
@ page
import
=
"
jbc.util.WebHelper
"
%>
<%
@ include file
=
"
resource.jsp
"
%>
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.01 Transitional//EN
"
>
<
html:html lang
=
"
true
"
>
<
head
>
<
html:base
/>
<
title
>
desktop.jsp
</
title
>
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=utf-8
"
>
<
meta http
-
equiv
=
"
pragma
"
content
=
"
no-cache
"
>
<
meta http
-
equiv
=
"
cache-control
"
content
=
"
no-cache
"
>
<
meta http
-
equiv
=
"
expires
"
content
=
"
0
"
>
。。。。。。。。。。。。
这与前一个页面的不同之处在于增加了struts标签,我在反复测试后发现把<html:base />这个标签删除后中文就正常了,但是<html:base />这个标签是必须的,于是我把<html:base />这个标签放置在meta后面
<%
@ page language
=
"
java
"
pageEncoding
=
"
UTF-8
"
%>
<%
@ page
import
=
"
jbc.util.WebHelper
"
%>
<%
@ include file
=
"
resource.jsp
"
%>
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.01 Transitional//EN
"
>
<
html:html lang
=
"
true
"
>
<
head
>
<
title
>
desktop.jsp
</
title
>
<
meta http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=utf-8
"
>
<
meta http
-
equiv
=
"
pragma
"
content
=
"
no-cache
"
>
<
meta http
-
equiv
=
"
cache-control
"
content
=
"
no-cache
"
>
<
meta http
-
equiv
=
"
expires
"
content
=
"
0
"
>
<
meta http
-
equiv
=
"
keywords
"
content
=
"
keyword1,keyword2,keyword3
"
>
<
meta http
-
equiv
=
"
description
"
content
=
"
This is my page
"
>
<
common:validate
/>
<
html:base
/>
</
head
>
而且经过测试我发现,不仅仅是struts标签,在meta前面加入任何标签都将导致页面的中文乱码。
因此我认为workshop的jsp editer在打开文件时首先要读取jsp页面的meta标签以确定编码,如果没有指定字符集的meta标签或者在该meta标签前增加其它方法标签将会导致编辑器读取编码不正常,而使得编辑器以默认的gb2312字符集打开文件导致乱码
总结workshop(原nitrox m7)的utf-8中文乱码问题的解决步骤应该是:
1、首先确定项目的编码是uft-8,这样保证默认的jsp页面属性是utf-8
2、在jsp页面中添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >,注意如果已经含有中文并且是乱码就必须先要用其它可以正常显示的编辑器打开添加后并保存
3、当发现打开依然是乱码时就要检查是不是在<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >前还有什么需要逻辑处理的标签影响的workshop对jsp页面的读取。
这个问题花费了我两个礼拜的时间希望我的方法能够给同样和我一样在为这个问题烦恼的朋友有所帮助
posted on 2006-04-12 10:52
rocket
阅读(2554)
评论(8)
编辑
收藏
评论:
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决 2006-04-12 12:21 |
pfood
谢谢
回复
更多评论
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决 2006-04-12 14:10 |
keith
这问题我在M7上问过,他们是根据<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >确定文件编码的,希望能改进一下,这样很不合理,因为不是所有页面都要增加的的,例如include进来的,再在每页都加上meta不就重复了。
最好能改成根据<%@ page language="java" pageEncoding="UTF-8"%>来保存文件的编码。
如果能像myeclipse那样就更好了
回复
更多评论
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决 2006-04-12 14:29 |
rocket
@keith
是的,买了这么贵的东西,其它都很好用,但是要是因为这一个小问题影响了使用真的是太不应该了
回复
更多评论
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决 2006-04-13 10:13 |
Harryson
楼主辛苦了,
找出问题了,肯定很兴奋.
找bug很有挑战性.
回复
更多评论
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决 2006-04-13 21:56 |
小武藏
有一种解决办法是修改 Tomcat 的 server.xml 文件的 connnector:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" useBodyEncodingForURI="true" />
其中 URIEncoding="UTF-8" useBodyEncodingForURI="true" 是需要新增的。
我也被这样的问题困惑过。
回复
更多评论
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决 2006-04-13 23:44 |
rocket
@小武藏
谢谢你的补充
不过我的问题是
你这样更改是在启动服务器以后可以正确的显示jsp页面
而我处理的问题是在使用eclipse编辑jsp页面时出现乱码
回复
更多评论
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决 2006-07-26 02:46 |
boin
给Eclipse加上启动参数 -Dfile.encoding=utf-8 也能完美解决这个问题!
回复
更多评论
#
re: 关于workshop(原nitrox m7)的utf-8中文乱码问题解决
2006-08-12 18:10 |
xudi
强!太感谢了!
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
Dict.CN 在线词典, 英语学习, 在线翻译
QQ:19794405
agilelife分享群:59765983
QQ上少了,请大家加入msn group:
agilelife@groups.msn.com
敏捷项目实践经验分享
TDD,重构,迭代,结对
<
2006年4月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(7)
给我留言
查看公开留言
查看私人留言
我参与的团队
深圳Java俱乐部(0/0)
随笔分类
(15)
UI相关
好文翻译(1)
常用框架(1)
敏捷方法(4)
数据库相关
构架设计(2)
经验积累(3)
项目管理(4)
随笔档案
(55)
2008年12月 (1)
2008年7月 (2)
2008年5月 (8)
2008年3月 (1)
2008年2月 (4)
2007年10月 (1)
2007年9月 (4)
2007年7月 (3)
2007年5月 (2)
2007年4月 (6)
2007年3月 (5)
2007年2月 (2)
2007年1月 (3)
2006年11月 (3)
2006年10月 (1)
2006年8月 (1)
2006年7月 (1)
2006年5月 (2)
2006年4月 (2)
2006年3月 (3)
相册
rocket
搜索
积分与排名
积分 - 132732
排名 - 464
最新评论
1. re: 找了一天的jsp格式化工具,最后还是用回workshop
nb@2
--3
2. re: 一个以前没有注意的问题:java构造函数的执行顺序
不错,很有帮助
--王鹏飞
3. re: 一个新java web项目入手过程总结
标记一下。
--何杨
4. re: 单元测试究竟是测试什么?[未登录]
单元测试是在测逻辑,包括条件判定,循环等。博主的这段代码不包括任何逻辑,当然不需要用单元测试去覆盖。
--王辉
5. re: 找了一天的jsp格式化工具,最后还是用回workshop
傻逼
--2
阅读排行榜
1. 一个新java web项目入手过程总结(8491)
2. 一个以前没有注意的问题:java构造函数的执行顺序(8186)
3. 找了一天的jsp格式化工具,最后还是用回workshop(7367)
4. dwr reverse-ajax 实例解析(6589)
5. Spring+hibernate 单元测试框架总结(6224)
评论排行榜
1. 不仁义,不仗义(24)
2. 招聘java程序员,系统架构师(20)
3. dwr reverse-ajax 实例解析(11)
4. 找了一天的jsp格式化工具,最后还是用回workshop(10)
5. 单元测试究竟是测试什么?(10)