中文亂碼一直都是讓大陸程序員鬧心的問(wèn)題,今天不巧讓我碰到了,。把解決辦法貼出來(lái),,和大家分享~
操作系統(tǒng):LinuxRedHat6(已安裝中文包,,支持中文顯示以及中文版操作系統(tǒng)界面);
數(shù)據(jù)庫(kù):oracle11gR2
問(wèn)題:在編寫數(shù)據(jù)庫(kù)初始化腳本時(shí),,中文部分插入數(shù)據(jù)庫(kù)全是亂碼,。
解決辦法:
保證sql腳本格式的正確性:
1、大多數(shù)童鞋都是在windows下編輯sql腳本的,,所以,,在保存時(shí)請(qǐng)選擇UTF-8 無(wú)BOM編碼格式。我使用的編輯工具是Ultral Edit.
更改Oralce環(huán)境變量:
2,、登錄Linux,進(jìn)入oracle用戶,,編輯/home/oracle/.bash_profile文件
#vi /home/oracle/.bash_profile;
在最后一行添加:
export NLS_LANG="Simplified Chinese_CHINA.AL32UTF8"
AL32UTF8是根據(jù)你的oracle數(shù)據(jù)庫(kù)字符集填寫的,。
之后重新編譯.bash_profile文件或者重新登錄
#source /home/oracle/.bash_profile;(重新編譯的方式,執(zhí)行這段代碼)
驗(yàn)證一下吧:#echo $NLS_LANG;
如果是Simplified Chinese_CHINA.AL32UTF8就對(duì)了,,這時(shí)候sqlplus進(jìn)入oracle,,查看中文還是執(zhí)行帶有中文的腳本就都可以啦~
查看數(shù)據(jù)庫(kù)字符集sql語(yǔ)句:
SQL>select * from nls_database_parameters where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
其中:NLS_CHARACTERSET字段對(duì)應(yīng)AL32UTF8,
SQL>select * from v$nls_parameters ;
其中:NLS_LANGUAGE字段對(duì)應(yīng)Simplified Chinese , NLS_TERRITORY對(duì)應(yīng)CHINA,。
|
|
來(lái)自: AlPacido > 《02_Oralce》