找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 10815|回复: 2

nls_lang 的设置和字符集问题

[复制链接]
发表于 2009-11-29 02:53:49 | 显示全部楼层 |阅读模式 IP:江苏扬州
我的环境是RH linux 4,数据库oracle 10.2,字符集是AL32UTF8。现象是这样的:用select查看原数据,中文显示乱码,但java应用程序显示正常。从linux上用 sqlplus插入一条中文,再用select 查询,新插入的这条中文显示正常,但java应用程序查询不出来。数据库字符集用的utf8,看了一下nls_lang的设置是 NLS_LANG=american_america.AL32UTF8; 于是改成了NLS_LANG=american_america.UTF8(编辑并运行.bash_profile),重新插入数据,用select查 看,中文显示乱码,但java应用程序显示正常。再修改NLS_LANG=american_america.ZHS16GBK,用select查询,中 文显示正常。
今天又遇到了从sql plus insert 中文的问题,主要还是nls_lang的设置,总结一下。
首先要明确什么是字符集?字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包括关系,如us7ascii就是zhs16gbk的子集, 从us7ascii到zhs16gbk不会有数据解释上的问题,不会有数据丢失,Oracle对这种问题也要求从子集到超集的导出受支持,反之不行。在所 有的字符集中utf8应该是最大,因为它基于unicode,双字节保存字符(也因此在存储空间上占用更多)。

其次,一旦数据库创建后,数据库的字符集是不能改变的。因此,在设计和安装之初考虑使用哪一种字符集是十分重要的。数据库字符集应该是操作系统本地字符集的一个超集。存取数据库的客户使用的字符集将决定选择哪一个超集,即数据库字符集应该是所有客户字符集的超集。
现在,介绍一些与字符集有关的NLS_LANG参数,

NLS_LANG格式:

NLS_LANG = language_territory.charset

有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:language 指定服务器消息的语言。

territory 指定服务器的日期和数字格式。

charset 指定字符集

例如:

AMERICAN_AMERICA.US7SCII

AMERICAN _ AMERICA. ZHS16GBK



还有一些子集可以更明确定义NLS_LANG参数:

DICT.BASE 数据字典基本 表版本

DBTIMEZONE 数据库时区

NLS_LANGUAGE 语言

NLS_TERRITORY 地域

NLS_CURRENCY 本地货币字符

NLS_ISO_CURRENCY ISO货币字符

NLS_NUMERIC_CHARACTERS 小数字符和组 分隔开

NLS_CHARACTERSET 字符集

NLS_CALENDAR 日历系统

NLS_DATE_FORMAT 缺省的日期格式

NLS_DATE_LANGUAGE 缺省的日期语言

NLS_SORT 字符排序序列

NLS_TIME_FORMAT 时间格式

NLS_TIMESTAMP_FORMAT 时间戳格式

……
查看可选的数据库字符集:col nls_charset_id for 99999
col nls_charset_name for a35
col hex_id for a5
select nls_charset_id(value) nls_charset_id,value nls_charset_name,to_char(nls_charset_id (value),'xxxx') hex_id
from v$nls_valid_values
where parameter = 'CHARACTERSET';
查看当前数据库字符集配置:col parameter for a35
col value for a35
select * from v$nls_parameters;
或者:select * from sys.props$
发表于 2010-1-6 07:05:04 | 显示全部楼层 IP:香港
太有才了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 01:43 , Processed in 0.194487 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表