linux 字符集和oracle 字符集
一·檢視字符集
字符集在系統中體現形式是一個環境變數,以CentOS6.5為例,其檢視當前終端使用字符集的方式可以有以下幾種方式:
1、[root@david ~]# echo $LANG
zh_CN.GB18030
2、[root@david ~]# env |grep LANG
LANG=zh_CN.GB18030
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
3、[root@david ~]# export |grep LANG
declare -x LANG="zh_CN.GB18030"
declare -x LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
4、[root@david ~]# locale
LANG=zh_CN.GB18030
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
LC_COLLATE="zh_CN.GB18030"
LC_MONETARY="zh_CN.GB18030"
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=
上面均說明LC_CTYPE(字元辨識編碼)表示這個系統的系統現在使用的字符集是zh_CN.GB18030,LC_NUMERIC(數字系統的顯示訊息)等其它與語言相關的變數。通常如果其它的語言變數都未設定,僅設定LANG這個變數就可以預設代替所有其它變數了。
二、修改字符集的方式
需注意的是:如果預設語言是en_US.UTF-8,在Linux的字元和圖形介面下都是無法顯示和輸入中文的。如果預設語言是中文,比如zh_CN.GB18030 或者zh_CN.gb2312,字元介面無法顯示和輸入,圖形介面可以。
修改的方式有如下兩種:
1、直接設定變數的方式修改,命令如下兩條命令:
[root@david ~]# LANG=xxx 或者 export LANG=xxx;
[root@david ~]# LC_ALL=”xxx” 或者 export LC_ALL=”xxx”;
注:xxx為欲修改為的字符集
檢視標準的字符集的方法,locale –a命令,常用的有zh_CN.GB2312、
zh_CN.GB18030或者zh_CN.UTF-8、en_US.UTF-8等
但是上述修改方式只會在當前shell中生效,新建shell此環境變數消失。
故平時登入系統執行“LANG= ”這個命令的時候顯示的就沒有亂碼的緣故,意思就是取消了字符集的顯示,取消字符集還可以執行[root@david ~]# unset LANG這個命令。
2、修改檔案方式,透過修改/etc/sysconfig/i18n檔案控制
[root@david ~]# vim /etc/sysconfig/i18n
LANG="zh_CN.GB18030" 即為系統的語言
SUPPORTED="zh_CN.UTF-8:zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
修改檔案儲存退出之後要生效要執行如下命令才可生效
[test@pan ~]$ source /etc/sysconfig/i18n
我的問題:
Java檔案是UTF-8編碼,SSH客戶端是UTF-8編碼,Linux Shell是zh_CN.gbk,執行後打出來的日誌是亂碼,設定LANG="zh_CN.utf8",LC_ALL="zh_CN.utf8"後解決。
locale -a 檢視本地字符集
locale -m 檢視所有支援的字符集
lang和NLS_lang區別和聯絡
LANG是針對Linux系統的語言、地區、字符集的設定。
NLS_LANG是針對Oracle語言、地區、字符集的設定。
LANG=zh_CN.GB2312
NLS_LANG=AMERICAN.AMERICA_ZHS16GBK
Linux系統LANG設定:
[root@blliu tmp]# locale
LANG=zh_CN.gb2312
LC_CTYPE="zh_CN.gb2312"
LC_NUMERIC="zh_CN.gb2312"
LC_TIME="zh_CN.gb2312"
LC_COLLATE="zh_CN.gb2312"
LC_MONETARY="zh_CN.gb2312"
LC_MESSAGES="zh_CN.gb2312"
LC_PAPER="zh_CN.gb2312"
LC_NAME="zh_CN.gb2312"
LC_ADDRESS="zh_CN.gb2312"
LC_TELEPHONE="zh_CN.gb2312"
LC_MEASUREMENT="zh_CN.gb2312"
LC_IDENTIFICATION="zh_CN.gb2312"
LC_ALL=
Oracle NLS_LANG設定:
SQL> SELECT *
2 FROM DATABASE_PROPERTIES
3 WHERE PROPERTY_NAME IN
4 ('NLS_LANGUAGE', 'NLS_TERRITORY', 'NLS_CHARACTERSET');
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
------------------------------ ------------------------------ --------------------
NLS_LANGUAGE AMERICAN Language
NLS_TERRITORY AMERICA Territory
NLS_CHARACTERSET ZHS16GBK Character set
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2126096/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle字符集和國家字符集Oracle
- Linux下修改Oracle字符集LinuxOracle
- Oracle字符集Oracle
- Oracle 字符集Oracle
- Oracle字符集的檢視查詢和Oracle字符集的設定修改Oracle
- 檢視和修改Oracle字符集Oracle
- Linux 字符集Linux
- oracle 軟體字符集和建立的字符集不一致Oracle
- 【字符集】論Oracle字符集“轉碼”過程Oracle
- Oracle 字符集修改Oracle
- 修改oracle字符集Oracle
- oracle修改字符集Oracle
- oracle字符集修改Oracle
- oracle 修改字符集Oracle
- ORACLE字符集(zt)Oracle
- oracle更改字符集Oracle
- 搞懂oracle字符集Oracle
- oracle 字符集 (轉)Oracle
- Oracle字符集的檢視和修改Oracle
- Oracle 字符集的檢視和修改Oracle
- oracle國家字符集與資料庫字符集Oracle資料庫
- 修改linux字符集Linux
- Oracle字符集介紹Oracle
- Oracle 字符集小結Oracle
- 理解ORACLE 字符集【轉】Oracle
- oracle之修改字符集Oracle
- oracle字符集問題Oracle
- oracle中字符集列表Oracle
- ORACLE字符集簡介Oracle
- (轉)Oracle 字符集的檢視和修改Oracle
- Oracle 字符集的檢視和修改(轉)Oracle
- 轉_oracle的字符集_源於多位元組字符集Oracle
- linux字符集檔案Linux
- Linux字符集問題Linux
- Oracle Linux 7設定中文字符集OracleLinux
- oracle字符集相關整理Oracle
- Oracle修改資料字符集Oracle
- 修改oracle client 的字符集Oracleclient