問題重現:
安裝的是oracle 11g數據庫,支持字符集是GBK,系統字符集是UTF-8,通過sqlplus insert數據(中文漢字)可以正常顯示中文,從前端客戶端(apache+php)插入中文數據,在數據庫中查看都是亂碼"?"。

可憐我的疼呀,眼看第二天就要上線了,數據庫的編碼的又出了問題;更改的系統字符集,強制性在php插入時改變默認字符,測試還是亂碼。就在這裏查呀查呀,百度,谷歌不停的搜呀,都沒有搜到想要的答案

冷靜下來思考後,心想問題是不是出在oracle 的NLS_LANG參數設置問題上。
sqlplus下執行:select userenv('language') from dual;查看oracle字符集,果真是NLS設置問題,趕快把NLS_LANG的字符集設置和oracle字符集相同,在通過前端插入時,一切OK.


NLS_LANG 未設置或設置錯誤,都會導致插入中文亂碼問題,排除這方面的問題一定要曉得字符集的排除過程。
1. 未設置:向oracle插入數據時,數據庫會尋找系統中的字符編碼,然可已系統的編碼方式插入數據庫。
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 多層分類 的頭像
    多層分類

    多層分類的部落格

    多層分類 發表在 痞客邦 留言(0) 人氣()