jubilder的2个问题(300分)(200分)

T

tlz

Unregistered / Unconfirmed
GUEST, unregistred user!
1)数据库里中文显示为乱码。
2)OS里CLASSPATH设置无效,只好改动jbuilder.config(IDE里设置也无效),
但编译后运行仍然是找不到classpath(jdbc driver) os=windows xp
 
我只知道第一个问题怎么解决:
java对中文的支持不是很好,在juilder开发的jsp中直接显示都是乱码,在
数据库中一样,只能写程序转换,不光是数据录入要转换,而且输出也要。
我记得在《jsp时尚编程百例》中有转换程序,你可以去查一查。
 
jsp里容易解决,但我现在是在Application里用JBUILDER的数据库构件,
怎么用转换程序啊?
 
那就不清楚啦,我还是菜鸟 :)
可能还是需要转换,录入时对每个字段进行一次转换以便在控件中正确显示
中文,这样提交便是以正确的编码方式提交到数据库中。检索数据显示时可能
需要转换,试试看就知道了
这种转换的方法很麻烦,不知道还有没有其他好的办法。
 
转换程序:
public String AsciiToChineseString(String s){
char[] orig = s.toCharArray();
byte[] dest = new byte[orig.length];
for (int i=0;i<dest.length;i++) dest=(byte)(orig&amp;0xFF);
try {
sun.io.ByteToCharConverter toChar = sun.io.ByteToCharConverter.getConverter("gb2312");
return new String(toChar.convertAll(dest));
}
catch (Exception e){
System.out.println(e);
return s;
}
}
public String ChineseStringToAscii(String s){
try {
sun.io.CharToByteConverter toByte = sun.io.CharToByteConverter.getConverter("gb2312");
byte[] orig = toByte.convertAll(s.toCharArray());
char[] dest = new char[orig.length];
for (int i=0;i<dest.length;i++) dest=(char)(orig&amp;0xFF);
return new String(dest);
}
catch (Exception e) {
System.out.println(e);
return s;
}
}
 
必须在数据提交到数据库之前进行字符集的转换,把iso8859-1转换成gb2312,jsp中很好作,
数据库控件能不能在beforepost之类的事件进行一下转换。(数据库控件我不熟)
数据库驱动的类如果找不到的话,如果数据库连接是在servlet或class中进行连接的,
可以配置jbuilder的configue libraries,然后加入到项目中就可以了吧。
如果是jsp就好像有时候有问题,是在不行就考到当前目录,我当时就是这样做的。
 
更换适合的Jdbc driver
 
jdbc driver 无问题。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
934
DelphiTeacher的专栏
D
顶部