关于中文乱码。Oracle字符集是AMERICAN_AMERICA.us7ascii,怎么办?(帮顶,也有分)

rubasse200 2004-11-18 04:47:05
Oracle字符集是AMERICAN_AMERICA.ZHS16GBK的情况下,中文的显示和插入都没有什么问题。可是,现在要求使用的数据库字符集是AMERICAN_AMERICA.us7ascii,应该如何处理?请各位指点一下,不胜感激。
...全文
1835 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
rubasse200 2004-11-22
  • 打赏
  • 举报
回复
顶一下
xueqs 2004-11-19
  • 打赏
  • 举报
回复
up
sunatteda 2004-11-19
  • 打赏
  • 举报
回复
去注册表改一下,具体地我忘了 有个键值 把它改成AMERICAN_AMERICA.us7ascii 或者在sql 语句中更改,两个都作一下吧,保险!
rubasse200 2004-11-19
  • 打赏
  • 举报
回复
顶一下
wandou999 2004-11-19
  • 打赏
  • 举报
回复
uuuuuuuuuuuuuup
rubasse200 2004-11-19
  • 打赏
  • 举报
回复
顶一下
rubasse200 2004-11-19
  • 打赏
  • 举报
回复
真的没人知道吗?
rubasse200 2004-11-19
  • 打赏
  • 举报
回复
顶一下。

有没有具体些的解决方法?
rubasse200 2004-11-18
  • 打赏
  • 举报
回复
顶一下
rubasse200 2004-11-18
  • 打赏
  • 举报
回复
精华区的链接,我这里全都打不开。

对于GBK,一般是使用Filter过滤,然后修改server.xml文件。就能解决问题。
可是对于us7ascii,我找了很长时间也没有解决的办法。

我查的一篇资料里提到:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JDBC中的中文问题
如果以上的方法还不能解决你的乱码问题,那么可能是JDBC操作中的失误.这里以Oracle9I为例来说明jdbc中的中文问题.首先查询数据库:
select * from v where parameter=´´NLS_CHARACTERSET´´;
得到数据库的字符集,如果ZHS16GBK,则JDBC的操作不需要转码;如果是us7ascii,则需要转码或者作相关配置。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
因为我在符集为AMERICAN_AMERICA.ZHS16GBK时,程序没有问题,所以怀疑是JDBC中的中文问题。可是文章没有给出解决方法。

谁能指点一下,急用。
大道如海 2004-11-18
  • 打赏
  • 举报
回复
mark!
AHUA1001 2004-11-18
  • 打赏
  • 举报
回复
这个问题过去肯定有人问过,你去
http://community.csdn.net/expert/forum.asp?url=/Expert/ForumList.asp?roomid=5409&typenum=3&xmlsrc=&whichpage=1
一定能找到。
homeland520 2004-11-18
  • 打赏
  • 举报
回复
up
rubasse200 2004-11-18
  • 打赏
  • 举报
回复
顶一下
由于历史的原因,早期的oracle没有中文字符集(如oracle6、oracle7、oracle7.1),但有的用户从那时起就使用数据库了, 并用US7ASCII字符集存储了中文,或是有的用户在创建数据库时,不考虑清楚,随意选择一个默认的字符集,如WE8ISO8859P1或US7ASCII,而这两个字符集都没有汉字编码,虽然有些时候选用这种字符集好象也能正常使用,但用这种字符集存储汉字信息从原则上说就是错误的,它会给数据库的使用与维护带来一系列的麻烦。正常情况下,要将汉字存入数据库,数据库字符集必须支持中文,而将数据库字符集设置为US7ASCII等单字节字符集是不合适的。US7ASCII字符集只定义了128个符号,并不支持汉字。另外,如果在SQL*PLUS中能够输入中文,操作系统缺省应该是支持中文的,但如果在NLS_LANG中的字符集设置为US7ASCII,显然也是不正确的,它没有反映客户端的实际情况。但在实际应用中汉字显示却是正确的,这主要是因为Oracle检查数据库与客户端的字符集设置是同样的,那么数据在客户与数据库之间的存取过程中将不发生任何转换,但是这实际上导致了数据库标识的字符集与实际存入的内容是不相符的。而在SELECT的过程中,Oracle同样检查发现数据库与客户端的字符集设置是相同的,所以它也将存入的内容原封不动地传送到客户端,而客户端操作系统识别出这是汉字编码所以能够正确显示。

81,117

社区成员

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

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