renxiao2003 发表于 2011-12-21 08:44

Servlet中文乱码!

<DIV>今天做Servlet输出中文的时候,不管怎么做,中文都乱码。后来用MyEclipse自动生成一个Serlvet,加入中文,正常。然后对比两个文件,发现了出问题的地方。看下面:</DIV>
<DIV>中文正常:
<DIV id=codeText class=codeText>
<OL style="PADDING-BOTTOM: 5px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 5px" class=dp-css><SPAN style="COLOR: #000000">&nbsp;response<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">setContentType</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"text/html"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR>
<LI>response<SPAN style="COLOR: #0000cc">.</SPAN>setCharacterEncoding<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"GB2312"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN> <BR></LI>
<LI><SPAN style="COLOR: #ff0000">PrintWriter</SPAN> out <SPAN style="COLOR: #0000cc">=</SPAN> response<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">getWriter</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN></SPAN></LI></OL></DIV></DIV>
<P>中文异常:</P>
<DIV id=codeText class=codeText>
<OL style="PADDING-BOTTOM: 5px; MARGIN: 0px 1px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 5px" class=dp-css>
<LI><SPAN style="COLOR: #000000"><SPAN style="COLOR: #ff0000">PrintWriter</SPAN> out <SPAN style="COLOR: #0000cc">=</SPAN> response<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">getWriter</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>response<SPAN style="COLOR: #0000cc">.</SPAN><SPAN style="COLOR: #ff0000">setContentType</SPAN><SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"text/html"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN><BR></LI>
<LI>response<SPAN style="COLOR: #0000cc">.</SPAN>setCharacterEncoding<SPAN style="COLOR: #0000cc">(</SPAN><SPAN style="COLOR: #ff00ff">"GB2312"</SPAN><SPAN style="COLOR: #0000cc">)</SPAN><SPAN style="COLOR: #0000cc">;</SPAN></SPAN></LI></OL></DIV>
<P>看出两个差别的地方吗?对,就是PrintWriter out的位置。必须在response设置字符集后再取Writer就正常了。</P>
页: [1]
查看完整版本: Servlet中文乱码!