zoukankan      html  css  js  c++  java
  • 关于操作系统的字符集,NLS_LANG,数据库字符集

    在开发ORACLE数据库应用程序时,经常会碰到乱码的问题,也正是如此,我们不得不面对各种字符集间的设置和转换的问题。

    为此我们必须搞清楚以下三种字符集的定义以及关系。

    1〉操作系统的字符集,也可以理解为客户端字符集,我们通过以下方式察看。

    1、打开CMD 命令行

    开始->输入cmd 

    2、右击菜单栏进入属性

    3、查找系统字符集

    红色部分就是当前系统的字符集

    *另外我们也可以通过命令行方式察看

    〉chcp

    >932 表示的是日文shift-jis,936是简体中文,437是英语。

    2〉系统环境变量NLS_LANG,可以理解为ORACLE客户端的字符集设置。

    注意:有可能系统根本就没有设置这个环境变量,这种情况下,我们可以通过注册表察看。

    NLS_LANG的组成: NLS_LANG=<NLS_Language>_<NLS_Territory>.<客户端字符集>
    例如: AMERICAN_AMERICA.WE8MSWIN1252

    其中:
    NLS_Language 指定:
    - Oracle(错误)信息的语言
    - 日和月份的名称

    注意:NLS_LANGUAGE与插入和查询的*数据*的语言无关。

    NLS_Territory 指定(国家或地区):
    - 货币和数字格式
    - 计算星期和天数的范围和惯例

    客户端字符集(CLIENTS CHARACTERSET):
    - 定义Oracle客户端,客户应用使用的编码
    * 或者它要符合您Microsoft Windows代码页 (GUI工具的ACP, 命令提示符的CHCP 值)
    * 或者为Unicode WIN32应用设置为UTF8/AL32UTF8

    3〉数据库字符集,我们通过以下方法进行察看。

    使用SQLPLUS username/password@servicename连接要察看的数据库,

    执行select * from nls_database_parameters; 

    NLS_LANGUAGE AMERICAN -〉语言
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS .,
    NLS_CHARACTERSET JA16SJIS -〉数据库字符集
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT Mon DD YYYY HH24:MI:SS
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT AM
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT TZR
    NLS_TIMESTAMP_TZ_FORMAT HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_NCHAR_CHARACTERSET AL16UTF16 -〉可以理解为NCHAR, NVARCHAR2 and NCLOB 的定义
    NLS_RDBMS_VERSION 11.2.0.4.0

    当我们的程序中发生乱码时,很有可能就是我们这三处的设置出现了问题,因此首先确认这三处的各自设置的是什么值。

    NLS_LANG与数据库字符集不一致时,我们的SQL文插入数据,或者查询时就有可能发生乱码。

    当两者一致还是乱码时,很有可能就是我们的系统的字符集不支持NLS_LANG所设置的字符集。

  • 相关阅读:
    HDU3440 House Man (差分约束)
    POJ1201 Intervals (差分约束)
    POJ2154 Color【 polya定理+欧拉函数优化】(三个例题)
    【2018年全国多校算法寒假训练营练习比赛(第三场)】
    数据人看Feed流-架构实践
    开源背后 | 面对端侧推理引擎的挑战,阿里工程师如何应对?
    容器十年 ——一部软件交付编年史
    公网对讲行业大咖分享:铁通电子为何选择阿里云?
    逾期率飙升如何破?揭秘金融科技如何化解消费金融行业风险
    微服务开源生态报告 No.2
  • 原文地址:https://www.cnblogs.com/touhoujerry/p/4794433.html
Copyright © 2011-2022 走看看