社区
Web 开发
帖子详情
[JSP]数据库中的字符是乱码,why?
danielkjackson
2005-06-01 07:45:04
我的环境:
win2000(sp4),mssqlserver2000(sp3a),tomcat5.0.28
我的问题:
为什么从jsp页面提交数据到数据库中,凡是简体中文全是乱码?
...全文
260
8
打赏
收藏
[JSP]数据库中的字符是乱码,why?
我的环境: win2000(sp4),mssqlserver2000(sp3a),tomcat5.0.28 我的问题: 为什么从jsp页面提交数据到数据库中,凡是简体中文全是乱码?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guo__peng
2005-06-02
打赏
举报
回复
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")对请求进行统一编码,就实现了中文的正常显示。
Goldrush
2005-06-01
打赏
举报
回复
先out.println一下看看写入数据库前是否正常
panpannana2
2005-06-01
打赏
举报
回复
1.首先你页面简体中文是否正常
2.jsp页面间简体中文参数传递是否正常
3.数据库查询插入是否正常
前两项可在jsp页面设置
1.<%@ page contentType="html/text;charset=GBK" %>
2.在第二个jsp接参数前打入代码 request.setCharacterEncoding("GB2312")不过在tomcat5中好像无效你可以这样 :
String ID = new String(request.getParameter("ID").getBytes("ISO-8859-1"),"GB2312");
id为你要从上个页面接的参数。
3.首先确保自己的os db以及页面设置的字符集是否一样,如果一样的话应该没什么问题
据我估计搂住应在插入数据库前将插入的中文参数转一下。
fyq168
2005-06-01
打赏
举报
回复
我觉得楼主应该去精华区看看吧,那里应该有你的答案的了。
accsk
2005-06-01
打赏
举报
回复
<%@ page contentType="html/text;charset=GBK" %>
danielkjackson
2005-06-01
打赏
举报
回复
请问,该如何转换呢?
querlang
2005-06-01
打赏
举报
回复
换换字符集试试,如GBK (国家标准)
UTF-8(unicode)
disremember
2005-06-01
打赏
举报
回复
需要转换字符集内码,就是说要转换为汉字字符集内码才行
JSP
对
数据库
的操作极简入门
JSP
对
数据库
的操作极简入门,案例实操。内容包括:
JSP
对
数据库
的增删改查-搭建环境、
JSP
对
数据库
的增删改查-page指令及tablib指令、
JSP
对
数据库
的增删改查-设置JDBC驱动名\
数据库
URL\用户名及密码、
JSP
对
数据库
的增...
ibm 服务器文件
乱码
,IBM Portal的web剪切出现
乱码
的解决办法!
文档出处:http://www.blogjava.net/badboyryan/archive/2007/01/05/91997.html同事在用IBM Portal的WEB剪切的时候,预览效果的时候发现页面全部是
乱码
why?其实这个问题是编码的问题,理解了
jsp
里面的编码是解决...
IBM Portal的web剪切出现
乱码
的解决办法!
文档出处:http://www.blogjava.net/badboyryan/archive/2007/01/05/91997.html同事在用IBM Portal的WEB剪切的时候,预览效果的时候发现页面全部是
乱码
why?其实这个问题是编码的问题,理解了
jsp
里面的编码是解决...
浅析
jsp
乱码
问题
<br />大家好,我...why? 其实在大家开发
中
,我们使用的所有工具都是外国人开发的!他们决定了我们的使用规则,这个是必须的,因为问题很简单,我们用的不是自己的! 下面我们来讨论一下在
jsp
开发
中
再再谈java
乱码
:GBK和UTF-8互转尾部
乱码
问题分析(续)
在《再谈java
乱码
:GBK和UTF-8互转尾部
乱码
问题分析》我们分析了,如果从一个UTF-8 的字节序列,经过 new String(b,"GBK") 的操作,”可能”(与总字节数有关)会破坏数据。结果可能是,损失最后一个”字”。反过来呢...
Web 开发
81,094
社区成员
341,717
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章