你好,大多数都是字符集不一致导致的乱码问题。对于出现乱码或问号等不正常显示问题,根据数据库字符集,正确配置参数NLS_LANG,一般可以解决,如果仍出现乱码,则可能和所使用的工具的字体编码设置有关。
那么解决出现的乱码时应该依次检查:查看数据库和客户端字符集,主要设置NLS_LANG;查看系统语言设置LANG参数;查看所用终端、工具字体编码设置。
针对所出现的问题,查看plsql的字体编码为GB2312,CRT的字体编码是UTF-8,修改为GB2312,centos终端修改-终端设置-字符编码修改,乱码问题解决。
说明数据库不支持中文,修改为GBK或者Utf-8就可以了。
ALTER SYSTEM DISABLE RESTRICTED SESSION;改完编码后执行sql> conn / as sysdba;
sql> shutdown immediate;
database closed
database dismounted
oracle instance shut down
sql> startup mount;
oracle instance started
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted
sql> alter system enable restricted session;
system altered
sql> alter system set job_queue_processes=0;
system altered
sql> alter system set aq_tm_processes=0;
system altered
sql> alter database open;
database altered
sql> alter database character set internal_use UTF-8;
sql> shutdown immediate;
sql> startup;
查看数据库编码格式:select userenv('language') from dual;
如果数据库格式支持中文,那么就要看下执行的sql是不是本身就有乱码了。
您好,提问者:
1、首先,Oracle查询编码:select from v$nls_parameters;//看看是否GBK
2、如果是用Servlet或者别的,插入数据之前输出一下,看看是否乱码。
比如:
doPost()//设置接受编码,但你的页面也必须是UTF-8
responsesetContentType("text/html;charset=UTF-8");
doGet()
//下面方式转一下码
String username = new String(requestgetParameter("username")getBytes("ISO-8859-1"),"UTF-8");
以上就是关于oracle 插入中文查询显示乱码,问号是什么原因全部的内容,包括:oracle 插入中文查询显示乱码,问号是什么原因、Oracle 11g中文乱码、从javaweb项目中向oracle插入数据出现中文乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)