Chinaunix
标题:
[编码] 中文保存乱码问题,那位大虾帮帮忙看看,谢谢!
[打印本页]
作者:
tianping188
时间:
2005-12-29 11:48
标题:
[编码] 中文保存乱码问题,那位大虾帮帮忙看看,谢谢!
俺使用的是jakarta-tomcat-5.0.27,系统是turbo linux,在web页面上进行文件上传操作,文件名称和文件标签都包含中文,在文件上传操作过程中,包含的中文都能正常显示。但是上传成功保存到数据库时,在数据库(sybase数据库)中查询出来的文件名称和文件标签中包含的中文显示乱码,在web页面中也显示为乱码。出问题之前上传的文件中文件名称和文件标签中包含的中文,从数据库中查询结果显示正常,但是在web页面显示却为乱码。
反正是出问题后,只要是从数据库中查询出来的中文在web页面显示都乱码,而jsp文件中的中文显示正常。
是不是在tomcat和数据库之间进行的文字编码转换有问题?
还是其他方面的问题?怎么解决?
[
本帖最后由 HonestQiao 于 2005-12-29 12:02 编辑
]
作者:
唐钰小宝
时间:
2005-12-29 12:45
要进行编码转换
作者:
tianping188
时间:
2005-12-29 14:51
标题:
回复 2楼 唐钰小宝 的帖子
在tomcat的那个配置文件中可以配置默认的字符集?
作者:
zhangxy6005
时间:
2005-12-29 15:10
<%
request.setCharacterEncoding("GB2312"); //设置输入编码格式
response.setContentType("text/html;charset=GB2312"); //设置输出编码格式
%>
作者:
tianping188
时间:
2005-12-29 16:08
标题:
回复 4楼 zhangxy6005 的帖子
多谢老兄指点!
俺碰到的问题是这样的,以前的web页面好好的,没有出现乱码问题。修改了一个web应用中的一个配置文件和更换一个jsp文件后,tomcat平台下的所有web应用中从数据库查询出来的中文都显示为乱码,而不光是修改配置和更换文件的web应用显示乱码。后来把配置文件和jsp还原到以前的版本,整个tomcat下的所有web应用中的web页面乱码问题还是没有解决。
所以怀疑是tomcat中的配置文件有问题,或者是turbolinux中的环境变量设置问题。
tomcat中设置默认语言的配置文件是那个?turbolinux中的环境变量配置文件是哪个?
作者:
perryhg
时间:
2005-12-30 01:45
tomcat默认的编码是en-US,以前看到一个方法是用一个servlet过滤器,你去搜索一下servlet filter GB2312,应该能找到解决方案。
作者:
zhangxy6005
时间:
2005-12-30 10:46
在处理数据之前加上二行代码
例如:
<%
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();
%>
作者:
knight-yl
时间:
2005-12-30 15:47
数据库中查询出来的中文在web页面显示都乱码
应该从resultset取出来的数据入手,大家怎么都在讨论request/response?
思路不对~~
第一,检查数据库里面是不是中文。
是---〉把取出的中文进行转换,处理方法:这个和数据库时建库/建表的设置有关。你用utf-8建库和gbk建库,检索出来的数据也会不一样。
写一个转换函数处理一下就可以。大体这么个函数toChinaese(resultset.getString("COLNAME"));函数里面无非i
byte[] bytesStr = str.getBytes("ISO-8859-1");
return new String(bytesStr, "gb2312");
复制代码
否---〉中文没有提交进去,从request入手
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2