| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1343 人关注过本帖
标题:jsp 页面的奇怪乱码!
只看楼主 加入收藏
我很幽默
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-9-30
收藏
 问题点数:0 回复次数:12 
jsp 页面的奇怪乱码!
1我用的是 SQL server 2005 + tomcat + struts
2所有的.jsp .do 请求都有过滤器 实行统一的 UTF-8 编码。public void doFilter(ServletRequest request, ServletResponse response,
                                                      FilterChain filterChain) throws IOException, ServletException {
                                                             request.setCharacterEncoding("UTF-8");
                                                             response.setCharacterEncoding("UTF-8");        
                                                             filterChain.doFilter(request, response);
                                                            }
3在页面用EL表达式输出
4页面里<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>也为UTF-8
5查询输出部分得到的全是乱码,非查询出来的中文显示正常
6多次试验发现 在需要查询的字段前加上一个英文字母 或数字页面中文显示正常,如要查询的字段为: “你好” 改为 “a你好” 或“1你好”。
7
搜索更多相关主题的帖子: 页面 乱码 jsp 
2009-09-30 08:42
learnerboy
Rank: 2
等 级:论坛游民
帖 子:246
专家分:22
注 册:2007-11-11
收藏
得分:0 
改为GBK
2009-09-30 10:47
lampeter123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
GB2312

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2009-09-30 11:42
qudong70
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-9-23
收藏
得分:0 
顶!我也是同样的问题?
2009-10-09 09:42
我很幽默
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-9-30
收藏
得分:0 
不对 改为GB2312 GBK 同样解决不了问题, 而且项目中所有页面统一风格都是UTF-8编码!改了也不好的。谁还有高见?
2009-10-09 12:40
柠檬可乐
Rank: 4
等 级:业余侠客
威 望:6
帖 子:66
专家分:205
注 册:2009-6-16
收藏
得分:0 
在代码开头添加一个文件如:<%@ include file="format.jsp"%>

format.jsp代码如下
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.
<html xmlns="http://www.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<%!
public String Bytes(String str)
{
try
{
String str_1=str;
byte[] str_2=str_1.getBytes("ISO8859-1");
String bytes=new String(str_2);
return bytes;
}
catch(Exception e)
{
System.out.println("中文乱码解决问题出错"+e.getMessage());
}
return "null";
}
%>
</body>
</html>
2009-10-11 01:56
我很幽默
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2009-9-30
收藏
得分:0 
你的意思我没明白
  
    1 public String Bytes(String str)  意思是让页面加载时执行吗? str 是拿什么字符传进去?
   
    2 要是你的意思是每当要输出一个中文时用这个来转换编码?那样岂不是很麻烦?
2009-10-15 08:56
ffcamel
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-10-14
收藏
得分:0 
如果你是从后台得到乱码的值,那你就看看你传值的方式,有些方式会出现乱码,换种传值方式

( ⊙o⊙ )下定决心的事,什么也改变不了~~(╯﹏╰)
2009-10-15 09:00
柠檬可乐
Rank: 4
等 级:业余侠客
威 望:6
帖 子:66
专家分:205
注 册:2009-6-16
收藏
得分:0 
以下是引用我很幽默在2009-10-15 08:56:51的发言:

你的意思我没明白
  
    1 public String Bytes(String str)  意思是让页面加载时执行吗? str 是拿什么字符传进去?
   
    2 要是你的意思是每当要输出一个中文时用这个来转换编码?那样岂不是很麻烦?

不是的,只要在文件中包含这个文件就行了,比如说你的文件是index.jsp,只要在index.jsp的开头添加
<%@ include file="format.jsp"%>。当然,要在把format.jsp放在包含index.jsp的 文件夹下

传递的时候是很容易的,包含Bytes就行了,如要获取某个字段:str=Bytes(request.getParameter("str1"));

这只是获取字段的方法,其他类型的乱码乱码问题也可以解决的
2009-10-17 12:45
sweallen
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-30
收藏
得分:0 
你的应该是数据库方面的问题吧 把数据库的类型改成UTF-8就可以了
还是不要用GBK,用UTF-8比较好
2009-10-17 23:31
快速回复:jsp 页面的奇怪乱码!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018680 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved