在做web系统中多语言版本时数据库字符集的问题

ppcodeyes 2005-04-07 05:38:40
环境:win2k+oracle9i+tomcat4.1.18
安装oracle的时候选择的是UTF-8

在本机(既是server也是client)设置regedit
HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0
SET NLS_LANG = AMERICAN_AMERICA.AL32UTF8

在环境变量中设置
NLS_LANG = AMERICAN_AMERICA.AL32UTF8

通过sqlplus
select * from sys.props$ where name='nls_language';显示
nls_language
american
language

select * from nls_database_parameters;显示
PARAMETER VALUE
------------------------------ -----------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM

PARAMETER VALUE
------------------------------ -----------------------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 9.2.0.1.0

select userenv('language') from dual;显示
AMERICAN_AMERICA.AL32UTF8

在开发过程中jsp全部用
<%@ page contentType="text/html;charset=UTF-8"%>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
在java代码中则不进行任何字符集的转换
tomcat运行后,插入中文字符后,再查询显示到jsp,一切正常。
但这个时候去db用sqlplus查询时是不正常的中文字符。

另外一个大问题就是在初期安装db script后进行insert的中文字符的数据字典表的脚本初始化,初始化后在dbsqlplus查询能显示正常中文字符,但这个时候通过java代码查询返回到jsp却是乱码。不知道如何解决,请大哥们指导指导!!

...全文
51 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
WilliamXiaoLiang 2005-04-07
  • 打赏
  • 举报
回复
Studying
QQ:390958177

17,377

社区成员

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

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