解決Oracle插入中文亂碼


一個.NET的入庫程序需要向Oracle中插入中文數據,但是在實際操作中發現所有中文都變成了??

Snap1

Google查詢說原因是Oracle客戶端的字符集與服務器端不匹配,需要更改客戶端(instant client)或者服務器端的字符集,服務器端的字符集自然不能隨便更改,因此只能更改客戶端字符集。

在SQL Developer中查詢服務器端的字符集:

select userenv('language') from dual;

結果:

Snap3

因此只要在客戶端設置同樣的字符集即可。

1. 對於Windows,在用戶環境變量中設置NLS_LANG變量

image

2. 對於Linux,在.bash_profile中設置NLS_LANG變量

NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_LANG

結果:

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM