问什么Oracle错误提示是问号

问什么Oracle错误提示是问号,第1张

错误原因: 一般,是因为字符集设置不对照成的。

解决方法:

1、检查服务器上Oracle数据库的字符集

SQL>conn sys/change_on_install

连接成功.

SQL>desc props$

列名 可空值否 类型

------------------------------- -------- ----

NAMENOT NULL VARCHAR2(30)

VALUE$ VARCHAR2(2000)

COMMENT$ VARCHAR2(2000)

SQL>col value$ format a40

SQL>select name,value$ from props$

NAME VALUE$

------------------------------ -------------------------

DICT.BASE 2

NLS_LANGUAGE AMERICAN

NLS_TERRITORY AMERICA

NLS_CURRENCY $

NLS_ISO_CURRENCY AMERICA

NLS_NUMERIC_CHARACTERS .,

NLS_DATE_FORMATDD-MON-YY

NLS_DATE_LANGUAGE AMERICAN

NLS_CHARACTERSET ZHS16GBK

NLS_SORT BINARY

NLS_CALENDAR GREGORIAN

NLS_RDBMS_VERSION 7.3.4.0.0

GLOBAL_DB_NAME ORACLE.WORLD

EXPORT_VIEWS_VERSION 3

查询到14记录.

NLS_CHARACTERSET这个参数应该是ZHS16GBK,如不是,改为它。

SQL*Plus中修改方法:

SQL>update props$ set value$='新字符集' where name='NLS_CHARACTERSET'

*** 作系统中修改方法:

connect internal

alter database ORCL character set ZHS16GBK

alter database ORCL national character set ZHS16GBK

2、检查 *** 作系统级Oracle汉字显示的字符集

运行regedit,定位到:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

找到以下字符串

NLS_LANG

检查是否以下内容,如不是,改之

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

//content=new String(content.getBytes("ISO8859_1"), "GBK")

"GBK"换成和你数据库一样的编码,

在bean里面的

byte[] temp_t=temp_p.getBytes("ISO8859-1")

String temp=new String(temp_t)

fvalue=getStr(fvalue)

在bean里是没必要转换的,如果你的temp_p不是iso8859-1(tomcat的默认编码),将会造成fvalue是乱码

两边入手,

PHP,需要设置页面编码,加一行代码:

header('Content-Type:text/htmlcharset=utf-8')

这样就把输出编码改为了UTF-8

但是,MySQL也要设置,那就是连接到数据库之后再加一行

mysql_query("SET

NAMES

`UTF-8`")

即可

当然,你得保证你的数据库的字符集是UTF-8

如果仍然出错,那就说明数据库的字符集配置有问题


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10647982.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存