关于JSP中文乱码问题,我试过了很多方法了,急急急急急!

zhl7522 2004-08-17 11:14:10
各位大侠快来帮帮忙,我都晕死了,我做的是WAP查询,用JSP语言,页面现在可以正常显示中文,如:out.print("中国");可当我从数据库中读取出来的汉字显示就是乱码,如:name=rs.getString("name");out.print("name")显示确是????号,请问这个问题怎么解决,对了系统是solarise+tomcat,而在我的WIN2000下和Tomcat下运行确显示正常,我试过各种办法:
1、String chn_string2=new String(platenumber.getBytes("ISO8859-1"),"GB2312")
2、<%@ page contentType="text/vnd.wap.wml;charset=GB2312"%>
<%request.setCharacterEncoding("GB2312");%>
3、函数转换
<%!
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";
}
%>
各种方法都不行,请问各位谁解决过此类问题,是不是操作系统的事,应该怎么办,我用的数据库是SQLSERVER,用JDBC连接的数据库,急!!!
...全文
438 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhl7522 2004-08-19
  • 打赏
  • 举报
回复
谢谢各位,看来只有楼上说的二进制显示和换个JDBC驱动没试了?请问哪个有最新的JDBC驱动!!!谢谢,还有过滤器怎么使用?
zhl7522 2004-08-18
  • 打赏
  • 举报
回复
各位大侠,还是不行啊!我用了jdbc:microsoft:sqlserver://ip:14433;DatabaseName=db;useUnicode=true;characterEncoding=ISO8859_1
然后输入出时String name=getString("name").trim(),out.pring(name);或
String chn_name=new String(name.getBytes("GB2312"));out.print(chn_name)或
String chn_name=new String(name.getBytes("GB2312"));out.print(chn_name)
都不行!头部是这样设的
<%@ page contentType="text/vnd.wap.wml;charset=gb2312"%>
<%request.setCharacterEncoding("UTF-8");%>

<%@ page contentType="text/vnd.wap.wml;charset=gb2312"%>
<%request.setCharacterEncoding("GB2312");%>也都不行,晕死我了,现在我真的怀疑是系统问题了,或JDBC版本问题了,请各各位谁有solaris下的最新JDBC驱动给我一个,我就差这个没试了!谢谢各位的帮助!!!:)
comerYY 2004-08-18
  • 打赏
  • 举报
回复
url设置成:
jdbc:microsoft:sqlserver://ip:14433;DatabaseName=db;useUnicode=true;characterEncoding=ISO8859_1
看看
talentliu 2004-08-18
  • 打赏
  • 举报
回复
str=new String(str.getBytes("ISO8859-1","GBK"))
试试这个
sheng_long 2004-08-18
  • 打赏
  • 举报
回复
我曾经有一个项目是solaris + websphere
数据库是oracle8
当时开发时显示正常
但是部署上线后数据库出来的文字是乱码
后来更改了oracle的数据库jar包解决了问题
你可以试试看SQLSERVER2000有没有最新的jar包
zhl7522 2004-08-18
  • 打赏
  • 举报
回复
数据库是SQLSERVER2000中文版,系统是WIN2000,而我的程序是在另一台服务器上,系统是solaris+tomcat
zhl7522 2004-08-18
  • 打赏
  • 举报
回复
yyqllxh2004(潇一郎):你好,连接数库时怎么设置转码?我的是SQLSERVER数据库!

gumnsteel(泡泡糖和铁丝网):真是是急啊!!!,我把什么设置页面编吗啊,还是进行字符串转码啊,都试过了,就是从数据库读出的中文显示为?号,晕

yujiabian(流氓兔子雨) :问题还是从数据库读出的中文显示为?号,晕,页面中其它中文正常显示,数据库是SQLSERVER2000中文版,服务器是solaris+tomcat
旧石人 2004-08-18
  • 打赏
  • 举报
回复
可能库本身就不支持中文,别老是急急急的叫,搞清楚问题
yujiabian 2004-08-18
  • 打赏
  • 举报
回复
那你现在问题在什么地方?
yyqllxh2004 2004-08-18
  • 打赏
  • 举报
回复
连库时就设定转码吧
zhl7522 2004-08-18
  • 打赏
  • 举报
回复
yujiabian(流氓兔子雨):你的转换也不好用啊!
zhl7522 2004-08-18
  • 打赏
  • 举报
回复
cctvnet(大虫) :你好,我的数据库是SQLSERVER,用你的方法好用吗?我试了,不行,是不是哪有什么不一样,你说的是varchar类型的属性设为binary,你是说把类型转换成binary吗?我该怎么做?

angelheart() :你好,你说的数据库问题是什么问题?


scotte2080 2004-08-18
  • 打赏
  • 举报
回复
<script language=javascript>
alert("ding");
</script>
scotte2080 2004-08-18
  • 打赏
  • 举报
回复
换最新的SQLServer驱动jar文件
lence1981 2004-08-18
  • 打赏
  • 举报
回复
temp_t=temp_t.getBytes("ISO8859-1");
String temp=new String(temp_t);
wgoose 2004-08-18
  • 打赏
  • 举报
回复
使用过滤器吧,很爽的,只需在web.xml中配一下,什么中文西文统统搞定
zqj9899 2004-08-18
  • 打赏
  • 举报
回复
你写一个类,让他以2进制传递,用GBK显示,不管数据库支持与否都可以
旧石人 2004-08-18
  • 打赏
  • 举报
回复
这么说,有可能是跨平台的问题,你可以写Email什么的咨询Sun公司一下。毕竟像你这样搞跨平台开发的可能经验都不是很多
farsword 2004-08-18
  • 打赏
  • 举报
回复
看看系统浏览器的设置,可能那里有些问题
xwj1003 2004-08-18
  • 打赏
  • 举报
回复
能解决的方法都写出来了 如果还不行 就没办法了
加载更多回复(14)

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧