我从JSP页将数据插入到oracle数据库中,为何汉字插入后数据库中显示为乱码呢?
如何解决,谢谢各位大师指点。 问题点数:100、回复次数:10Top
1 楼gdsean(摇滚java)回复于 2002-07-10 09:31:38 得分 0
http://www-900.ibm.com/developerWorks/cn/java/java_chinese/index.shtmlTop
2 楼hotenM(南京)回复于 2002-07-10 09:36:59 得分 100
这是最简单的中文问题了
因为数据库和app(包括页面),用的编码方式不同。
数据库的中文数据必须经过以下转换
String sApp = new String(rs.getString(1).getBytes("iso-8859-1"),"gb2312")
反之
String sDB = new String(sDB.getBytes("gb2312"),"iso-8859-1")Top
3 楼pengji(彭乃超)回复于 2002-07-10 09:48:29 得分 0
是因为你安装数据库时没有选择中文,而且你的OS也不是中文的!Top
4 楼pengji(彭乃超)回复于 2002-07-10 09:53:16 得分 0
这时数据库的问题是因为你在安装的时候没有选择中文字符,并且你的系统不是中文的引起的!Top
5 楼pengji(彭乃超)回复于 2002-07-10 09:54:45 得分 0
这时数据库的问题是因为你在安装的时候没有选择中文字符,并且你的系统不是中文的引起的!Top
6 楼whd11808(小玉米)回复于 2002-07-10 10:47:59 得分 0
request后要字符集转化。换成gbkTop
7 楼xxj1026(肖小軍)回复于 2002-07-10 19:58:38 得分 0
在JSP中寫及以下代碼
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";
}
然后進行轉化就OK了
Top
8 楼cdj1995(游侠)回复于 2002-07-10 22:49:37 得分 0
这个问题好像很容易解决。只要用一次转换就行。Top
9 楼cdj1995(游侠)回复于 2002-07-10 22:52:51 得分 0
一般网页上用的都是gb2312码,只要转换成数据库认识的码,大多数为iso-8859-1。new String(rs.getString(1).getBytes("iso-8859-1"),"gb2312")就可以了,出来的时候就不用再转化了。Top
10 楼jlimi(jlimi)回复于 2002-08-17 17:55:03 得分 0
从linux上向oracle存数据遇到了同样的问题,谢谢cdj1995(游侠)Top




