JSP 中文问题 说漏了一点,数据库驱动用的mysql-connector-java-3.2.0-alpha-bin.jar 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我改用mysql-connector-java-3.0.10-stable-bin.jar也还是不行,请高手帮忙看看 加个<%request.setCharacterEncoding("gb2312");%>试试 执行结果:将信息存入Mysql中从 mysql.html 接收到如下信息:姓:蔡 名:铮锋从employee表取出最新新增的姓名:新增姓名:?????? 写这样一个函数就没问题拉。<%! String trans(String chi){ String result=null; byte temp[]; try{ tem=chi.getByte("iso-8859-1"); result=new String(temp); } catch(UnsupportedEncodingException e) { System.out.println(e.toString()); }return result;}%> 据我以前的经验我把以前在resin + win2k的代码 放到linux tomcat 后使用用佯的数据库都会出现乱麻的问题但是以前写进去的就是对新写入的就是错的!所以我判断是 写入的错误而不是读出的错误 写这样一个函数就没问题拉。<%! String trans(String chi){ String result=null; byte temp[]; try{ tem=chi.getByte("iso-8859-1"); result=new String(temp); } catch(UnsupportedEncodingException e) { System.out.println(e.toString()); }return result;}%>我用了,还是不行不过问题解决了,出在字符集上,读出数据时不能用new_last_name =new String (rs.getString("last_name").getBytes("iso-8859-1"),"GB2312");new_first_name =new String (rs.getString("first_name").getBytes("iso-8859-1"),"GB2312");要用new_last_name =new String (rs.getString("last_name").getBytes("iso-8859-1"),"GBK");new_first_name =new String (rs.getString("first_name").getBytes("iso-8859-1"),"GBK");可能是数据库字符集的原因,我的系统是win2000 server有知道原因的高手请给我解惑 new_last_name =new String (rs.getString("last_name").getBytes("8859-1"),"gb2312") GB2312一共收录了7445个字符,太少了,而GBK则收录21886个符号,最新的GB18030则更多 Jsp中文乱码小议 -------郭鹏Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:<% page contentType="text/html; charset=gb2312" %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。具体实例归纳了以下几点,也许会对大家有一些帮助。1、在建立JSP页面时应该注意在jsp页面的头部加入一下代码<% page contentType="text/html; charset=gb2312" %>此方法是解决JSP页面显示时的乱码。2、有时还需在HTML代码中的<head></head>中加入这句<meta http-equiv="Content-Type" content="text/html; charset=gb2312">3、在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String str=new String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);这样,存入数据库的数据库的数据就可见了。4、对于页面间的参数传递也可以用这个方法来处理乱码问题: public String getStr(String str) { try { String temp_p=str; byte[] temp_t=temp_p.getBytes("ISO8859-1"); String temp=new String(temp_t); return temp; } catch(Exception e) {} return "null";}5、在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码<form enctype="multipart/form-data"></form>6、提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。 遇到过与楼主同样的问题(mysql) 写了这样一方法: public static String convertStr(String str){ try{ if (str == null) str = ""; if (!str.equals("")) { str = new String(str.getBytes("ISO-8859-1"),"GB2312"); } }catch (UnsupportedEncodingException e){ e.printStackTrace(); //throw new SystemException(e); } return str; }在JSP中:<%=Utils.convertStr((String)map.get("ADDRESS"))%>其它需注意的问题如楼上所说. 关于Axis2传回ArrayList的问题 SQL语句你行不?(至于你行不行我不知道,但我是不行) 求助 图片删除 Struts2新手404问题 struts 实现注册,给予不同注册会员不同访问数据库德 rainworm(早起的虫子有鸟吃) 给分 c++学了两年了vc用了1年了,这学期开java该怎么入门 从jsp向数据库插入日期时间的方法 asp or jsp 公司内部小小项目,服务器 硬件配置选择问题? JCreator编译Java文件 PreparedStatement 的问题???急急急
从 mysql.html 接收到如下信息:
姓:蔡 名:铮锋从employee表取出最新新增的姓名:
新增姓名:??????
<%! String trans(String chi)
{
String result=null;
byte temp[];
try{
tem=chi.getByte("iso-8859-1");
result=new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println(e.toString());
}
return result;
}%>
我把以前在resin + win2k的代码 放到
linux tomcat 后
使用用佯的数据库
都会出现乱麻的问题
但是以前写进去的就是对
新写入的就是错的!
所以我判断是 写入的错误
而不是读出的错误
<%! String trans(String chi)
{
String result=null;
byte temp[];
try{
tem=chi.getByte("iso-8859-1");
result=new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println(e.toString());
}
return result;
}%>
我用了,还是不行
不过问题解决了,出在字符集上,读出数据时不能用
new_last_name =new String (rs.getString("last_name").getBytes("iso-8859-1"),"GB2312");
new_first_name =new String (rs.getString("first_name").getBytes("iso-8859-1"),"GB2312");
要用
new_last_name =new String (rs.getString("last_name").getBytes("iso-8859-1"),"GBK");
new_first_name =new String (rs.getString("first_name").getBytes("iso-8859-1"),"GBK");
可能是数据库字符集的原因,我的系统是win2000 server
有知道原因的高手请给我解惑
-------郭鹏
Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。
首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:
<% page contentType="text/html; charset=gb2312" %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。
具体实例归纳了以下几点,也许会对大家有一些帮助。
1、在建立JSP页面时应该注意在jsp页面的头部加入一下代码
<% page contentType="text/html; charset=gb2312" %>
此方法是解决JSP页面显示时的乱码。
2、有时还需在HTML代码中的<head></head>中加入这句
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
3、在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下
String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String str=new String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);
这样,存入数据库的数据库的数据就可见了。
4、对于页面间的参数传递也可以用这个方法来处理乱码问题:
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{}
return "null";
}
5、在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码
<form enctype="multipart/form-data"></form>
6、提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。
写了这样一方法:
public static String convertStr(String str){
try{
if (str == null)
str = "";
if (!str.equals(""))
{
str = new String(str.getBytes("ISO-8859-1"),"GB2312");
} }catch (UnsupportedEncodingException e){
e.printStackTrace();
//throw new SystemException(e);
}
return str;
}
在JSP中:
<%=Utils.convertStr((String)map.get("ADDRESS"))%>
其它需注意的问题如楼上所说.