*** 高分, 关于数据库中文乱码的问题, 请高手指教, 一定给分。 **** 应该是你的SQLServer 2000的原因,我就遇到过类似的情况。看看数据库“安全性”的登录属性中,语言一项里面是否有“simpleChinese”或者其他类似的。如果没有,大概就是因为这个原因了。至于怎么解决,我不太清楚。试试重装SQLServer 2000吧。:) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然你的环境都是e文的,显然要设置sqlserver的字符集为中文编码另外若使用jdbc链接,写入中文和读出中文一般应该转换字符集,试试如下:从数据库中读出后转:str=new String (str.getBytes("ISO-8859-1"),"gb2312");写入数据库前转:str=new String (str.getBytes("gb2312"),"ISO-8859-1"); 试试在往数据库里加字段时先调用一下这个方法: public String big5ToUnicode(String s) { try{ return new String(s.getBytes("ISO8859_1"),"Big5"); } catch(UnsupportedEncodingException uee) { return s; } } alphazhao(绿色咖啡) : 您好, 我和您的思路是一样的, 可是就是不成功, 下面是我的代码, 您看一下有什么问题, 多谢;插入数据库:String s1 = null;s1 = new String(new String("你").getBytes("GB2312"), "ISO8859_1");String sql = "Insert Into t1(c1) Values('" + s1 + "')";stmt.executeUpdate(sql);查询:String s1 = new String(rst.getString(s).getBytes("ISO8859_1"), "GB2312");System.out.println(s1); is there anybody knows? 首先看看你的能否取出代码,比方说试试e文字符串确定程序没有问题,再来调试依我看,是String s1 = null;s1 = new String(new String("你").getBytes("GB2312"), "ISO8859_1");这里的问题,此时你若使用System.out.println(s1);输出看看就知道它是乱码。直接将之改为String s1 = "你";试试看因为写入数据库,若在java里面已经是正常的显示,大多可以不用再转了,很多时候因为要转换,是因为字符串是从界面上、键盘、socket等传进来的,像你这样直接在java里面定义的中文字符串,应该不用转。 项目完成后发现的问题,关于jdom.jar? 数据流输入怎么实现 关于J2EE异常处理的想法,希望一起讨论一下... 初学JAVA,请教用JAVA如何写迷宫的程序 请问j2sdk1.5 在哪儿能下载? J2SE 5.0 update 3 FCS 各位大哥,小弟我刚学JAVA,有几个问题请教一下: 一个菜到不能在菜的问题了!@#$% ^o^谁能介绍一本好的java书,100分送你!!!!! SOS~~~~ 一个简单问题,怎么没人答(在线等待) 关于JDBC的初等问题!小弟很着急呀!
另外若使用jdbc链接,写入中文和读出中文一般应该转换字符集,试试如下:
从数据库中读出后转:
str=new String (str.getBytes("ISO-8859-1"),"gb2312");
写入数据库前转:
str=new String (str.getBytes("gb2312"),"ISO-8859-1");
public String big5ToUnicode(String s)
{
try{
return new String(s.getBytes("ISO8859_1"),"Big5");
}
catch(UnsupportedEncodingException uee)
{
return s;
}
}
您好, 我和您的思路是一样的, 可是就是不成功, 下面是我的代码, 您看一下有什么问题, 多谢;插入数据库:
String s1 = null;
s1 = new String(new String("你").getBytes("GB2312"), "ISO8859_1");
String sql = "Insert Into t1(c1) Values('" + s1 + "')";
stmt.executeUpdate(sql);
查询:
String s1 = new String(rst.getString(s).getBytes("ISO8859_1"), "GB2312");
System.out.println(s1);
确定程序没有问题,再来调试
依我看,是
String s1 = null;
s1 = new String(new String("你").getBytes("GB2312"), "ISO8859_1");
这里的问题,此时你若使用System.out.println(s1);输出看看就知道它是乱码。
直接将之改为String s1 = "你";试试看
因为写入数据库,若在java里面已经是正常的显示,大多可以不用再转了,很多时候因为要转换,是因为字符串是从界面上、键盘、socket等传进来的,像你这样直接在java里面定义的中文字符串,应该不用转。