servlet中用out.print输出中文为“乱码”如何解决.
回复于: 2003-12-22 09:58:19
response.setContentType(“text/html;charset=GBK”);
PrintWriter out = response.getWriter();
这样就可以了!
关注CSDN社区微信 投稿有礼了!对我有用[1] 丢个板砖[0] 引用 | 举报 | 管理
center204
关注
center204
center204
等级:Blank
#2 得分:0 回复于: 2003-12-22 10:09:03
不行,我用的是tomcat 4 不可以
如果您对CSDN论坛有意见和建议 请直接在本帖指教对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
kenny1979
关注
kenny1979
kenny1979
等级:Blank
#3 得分:5 回复于: 2003-12-22 10:10:07
String str = “…”;
byte[] tmpbyte= str.getBytes(“ISO8859_1″);
String newstr = new String (tmpbyte);
这样就可以了!
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
center204
关注
center204
center204
等级:Blank
#4 得分:0 回复于: 2003-12-22 10:15:20
有没有简单的方式,为什么用setContentType不可以,jsp可以的啊
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
kenny1979
关注
kenny1979
kenny1979
等级:Blank
#5 得分:0 回复于: 2003-12-22 10:17:56
我这个不是够简单的了?! 晕的 你试过没有啊?
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
yupingping
关注
yupingping
yupingping
等级:Blank
#6 得分:0 回复于: 2003-12-22 10:32:14
up
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
jacktan
关注
jacktan
jacktan
等级:Blank
#7 得分:0 回复于: 2003-12-22 10:39:11
编译servlet时增加encoding ISO8859_1编译参数,如:javac -encoding ISO8859_1 test.java
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
center204
关注
center204
center204
等级:Blank
#8 得分:0 回复于: 2003-12-22 10:46:01
编译servlet时增加encoding ISO8859_1编译参数,如:javac -encoding ISO8859_1 test.java
这个我分别试了GBK gb2312 以及ISO8859_1,不行,环境是tomcat 4
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
kenny1979
关注
kenny1979
kenny1979
等级:Blank
#9 得分:0 回复于: 2003-12-22 11:02:47
那你的servlet代码里面加我的那段代码了吗?
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
center204
关注
center204
center204
等级:Blank
#10 得分:0 回复于: 2003-12-22 12:11:47
kenny1979(肯) 用你的方式,的确不是乱码了,但变成N个?号,明白?
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
kenny1979
关注
kenny1979
kenny1979
等级:Blank
#11 得分:0 回复于: 2003-12-22 12:46:01
明白
contentType=”text/html; charset=gb2312″ 这个设了没有?
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
center204
关注
center204
center204
等级:Blank
#12 得分:0 回复于: 2003-12-22 12:56:13
contentType=”text/html; charset=gb2312″
分别设为gb2312 GBK iso8859_1都不行,怪,jsp死活没事。
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
blapho
关注
blapho
blapho
等级:Blank
#13 得分:5 回复于: 2003-12-22 12:59:50
保证:
contType=”text/html; charset=gb2312″
试用:
string a=”aaaa”;
byte i[]=new a.getBytes(“ISO-8859-1″);
s=new String(a);
如果还出现?????????????或都乱码,则换一个编写工具,推荐用editplus2.0以前我也碰到过这样的问题.
要是还???????????????????????非吾之能力所及也!~~~~~~~~~
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
hykwolf
关注
hykwolf
hykwolf
等级:Blank
#14 得分:0 回复于: 2003-12-22 13:07:04
response.setContentType(“text/html;charset=GBK”);
PrintWriter out = response.getWriter();
out.println(“中国画”);//不是中文就没救了;
out.println(request.getParameter(“param”));//不是中文正常
下面那个问题是你request.getParameter()的问题,要做编码转换byte[] tmpbyte= str.getBytes(“ISO8859_1″);
String newstr = new String (tmpbyte);
out.println(newstr)就ok了,前提:response.setContentType(“text/html;charset=GBK”)
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
xiaojian
关注
xiaojian
xiaojian
等级:Blank
#15 得分:10 回复于: 2003-12-22 13:17:37
嘿嘿,看来这个问题得我来得分了。。。。。。
出乱码并不是Servlet的错,而是tomcat的错。
对tomcat进行相应配置,让tomcat以gb2312输出,这样就不会有问题了。
如果tomcat没配置好,servlet中怎么改都没用!
这可是经验之谈啊。
快给分啦。
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
center204
关注
center204
center204
等级:Blank
#16 得分:0 回复于: 2003-12-22 13:19:02
还真是tomcat没配好,但怎么jsp没事,晕了,不想了,送分~~
http://bbs.csdn.net/topics/40447055