依旧是ORACLE乱码问题,这个跟别的乱码不同,很怪异

xiaoming851 2004-11-21 08:44:40
用JAVA通过OCI8连接ORACLE出现乱码,可以肯定本地注册表里边NLS的编码跟远端ORACLE数据库的编码一样,用new String(value.getBytes("ISO-8859-1")或者不用来转换的话都不行,还是出现乱码,但是用sqlplus来连接显示的却是正常的,好奇怪啊!!
那位前辈知道怎么办啊???
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoming851 2004-11-22
  • 打赏
  • 举报
回复
to comcn:各种转码都试过了,不行,我觉得跟转码没关系的.
comcn 2004-11-22
  • 打赏
  • 举报
回复
你的机器字符集是什么
public String getString(String fieldname) {
try {
String value = rs.getString(fieldname);
if (value == null || value.equals("")) return "";
try {
return new String(value.getBytes("gb2312"));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
return "err";
}
xiaoming851 2004-11-22
  • 打赏
  • 举报
回复
to comcn:
还是不行啊,其实iso-8859-1跟iso8859_1是一样的,我按照你的说法改了一下,还是老样子,出现乱码,不行啊
comcn 2004-11-22
  • 打赏
  • 举报
回复
public String getString(String fieldname) {
try {
String value = rs.getString(fieldname);
if (value == null || value.equals("")) return "";
try {
return new String(value.getBytes("iso8859_1"));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
return "err";
}
xiaoming851 2004-11-22
  • 打赏
  • 举报
回复
操作系统是中文的,
源代码
public String getString(String fieldname) {
try {
String value = rs.getString(fieldname);
if (value == null || value.equals("")) return "";
try {
return new String(value.getBytes("ISO-8859-1"));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
} catch (SQLException e) {
e.printStackTrace();
}
return "err";
}

??????????????
cate520 2004-11-21
  • 打赏
  • 举报
回复
估计不会犯一些很基本的问题了么?
comcn 2004-11-21
  • 打赏
  • 举报
回复
你的JAVA源文件?
还有,你的操作系统支持中文吗?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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