
解决方法:
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
如果仍然出错,那就说明数据库的字符集配置有问题
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)