|
蓝森林 http://www.lslnet.com 2006年6月6日 10:18
[编码] 中文保存乱码问题,那位大虾帮帮忙看看,谢谢!
俺使用的是jakarta-tomcat-5.0.27,系统是turbo linux,在web页面上进行文件上传操作,文件名称和文件标签都包含中文,在文件上传操作过程中,包含的中文都能正常显示。但是上传成功保存到数据库时,在数据库(sybase数据库)中查询出来的文件名称和文件标签中包含的中文显示乱码,在web页面中也显示为乱码。出问题之前上传的文件中文件名称和文件标签中包含的中文,从数据库中查询结果显示正常,但是在web页面显示却为乱码。
[color=Red]反正是出问题后,只要是从数据库中查询出来的中文在web页面显示都乱码,而jsp文件中的中文显示正常。[/color]
是不是在tomcat和数据库之间进行的文字编码转换有问题?
还是其他方面的问题?怎么解决?
|
要进行编码转换 |
回复 2楼 唐钰小宝 的帖子
在tomcat的那个配置文件中可以配置默认的字符集? |
<%
request.setCharacterEncoding("GB2312"); //设置输入编码格式
response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
%> |
回复 4楼 zhangxy6005 的帖子
多谢老兄指点!
俺碰到的问题是这样的,以前的web页面好好的,没有出现乱码问题。修改了一个web应用中的一个配置文件和更换一个jsp文件后,tomcat平台下的所有web应用中从数据库查询出来的中文都显示为乱码,而不光是修改配置和更换文件的web应用显示乱码。后来把配置文件和jsp还原到以前的版本,整个tomcat下的所有web应用中的web页面乱码问题还是没有解决。
所以怀疑是tomcat中的配置文件有问题,或者是turbolinux中的环境变量设置问题。
tomcat中设置默认语言的配置文件是那个?turbolinux中的环境变量配置文件是哪个? |
tomcat默认的编码是en-US,以前看到一个方法是用一个servlet过滤器,你去搜索一下servlet filter GB2312,应该能找到解决方案。 |
在处理数据之前加上二行代码
例如:
<%
request.setCharacterEncoding("GB2312"); //设置输入编码格式
response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
//获取数据
int kdpayitemid = Integer.parseInt(request.getParameter("kdpayitemid"));
int money = Integer.parseInt(request.getParameter("money"));
String addtime = request.getParameter("addtime");
String message = request.getParameter("message");
int id = Integer.parseInt(request.getParameter("id"));
//修改数据
KdpayControl kdpaycontrol= new KdpayControl();
kdpaycontrol.setId(id);
kdpaycontrol.setKdpayitemid(kdpayitemid);
kdpaycontrol.setMoney(money);
kdpaycontrol.setAddtime(addtime);
kdpaycontrol.setMessage(message);
kdpaycontrol.editkdpay();
%> |
数据库中查询出来的中文在web页面显示都乱码
应该从resultset取出来的数据入手,大家怎么都在讨论request/response?
思路不对~~
第一,检查数据库里面是不是中文。
是---〉把取出的中文进行转换,处理方法:这个和数据库时建库/建表的设置有关。你用utf-8建库和gbk建库,检索出来的数据也会不一样。
写一个转换函数处理一下就可以。大体这么个函数toChinaese(resultset.getString("COLNAME"));函数里面无非i
[code]
byte[] bytesStr = str.getBytes("ISO-8859-1");
return new String(bytesStr, "gb2312");
[/code]
否---〉中文没有提交进去,从request入手 |
| |