日期:2014-05-20  浏览次数:20971 次

怎么解决JSP 乱码
<%@ page language="java" pageEncoding="GBK"%>
页面上有这样的语句。

环境里面也改成GBK了。。
现在是 有些乱有些没有乱。。
select 里面很多都变成??????了 
其他的地方 没有乱码 

这个问题该如何考虑解决啊?


------解决方案--------------------
http://blog.csdn.net/tkd03072010/article/details/6667689
参考一下这个!!!
------解决方案--------------------
把整个项目的编码设置都改过来。编码要一致
http://blog.csdn.net/kai27ks/article/details/5906739
------解决方案--------------------
看看,希望对你有帮助:http://blog.csdn.net/wula0010/article/details/3942321
------解决方案--------------------
你是在jsp页面写java代码吗?
如果是post方式获取
在获取参数前加
request.setCharacterEncoding("GBK");
如果get方式
假如s是你获取的参数
byte[] bs=s.getBytes("ISO-8859-1");
s=new String(bs,"GBK");
------解决方案--------------------
其实你用个过滤器对所有页面设置编码就好了
中文 建议不要用get方式传数据 

如果一定要 那么java.net.URLEncoder.encode(string,"GBK");
编码后再传
------解决方案--------------------
建议使用filter。
Filter如下: 
public class EncodingFilter implements Filter { 
private String encoding = "/*编码格式*/"; // 使用你自己的编码格式

public void init(FilterConfig fc) throws ServletException
String s = fc.getInitParameter( "Encoding "); 
if (s != null) { 
this.encoding = s; 



public void doFilter(ServletRequest request, ServletResponse response, 
FilterChain fc) throws IOException, ServletException { 
request.setCharacterEncoding(encoding); 
response.setCharacterEncoding(encoding); 
fc.doFilter(request, response); 


public void destroy() { 



配置:
<filter> 
<filter-name> EncodingFilter </filter-name> 
<filter-class> /*filter类全名*/</filter-class> 
<init-param> 
<param-name> Encoding </param-name> 
<param-value> UTF-8 </param-value> 
</init-param> 
</filter> 
<!-- 声明监听的文件 -->
<filter-mapping> 
<filter-name> EncodingFilter </filter-name> 
<url-pattern> *.jsp </url-pattern> 
</filter-mapping> 

------解决方案--------------------
如果是post方式获取
在获取参数前加
request.setCharacterEncoding("GBK");
要说get方式获取的话,有时候是会出现乱码的情况,
这不是因为你的代码写错了,可能是容器本身的问题,
比如TOMCAT,所以你的去看看你的配置文件
------解决方案--------------------
在后台对你的中文字符做个编码转换

如楼上所说,也有可能是你TOMCAT容器里设置了编码

如果是容器的配置文件设置了编码,那中文就可能会出现乱码