?
? ? ?最近,有現場反應,程序顯示亂碼。感覺很奇怪,該系統已經賣出去無數了。肯定是現場數據庫字符集有問題,經過查看,
現場環境:
window系統,oracle10g。
?
?
?
我們要求的數據庫字符集是AL32UTF8的,而現場自己安裝成ZHS16GBK。
并且,數據庫的表里面,中文是亂碼,如???( 這才是造成程序顯示亂碼的主要原因,后面詳述 )
?
當時一心以為:既然情況如此,只能期望通過調整數據庫字符集,來解決亂碼問題。雖然查閱了資料說,不建議這樣做;
?
修改數據庫服務器字符集步驟如下:
?
?
?還別說,表里面原來中文是亂碼的,現在還真的能正確顯示了。
?
但系統以前中文正常顯示的地方現在卻是亂碼,找不到問題原因。
?
后來,現場重新安裝了數據庫實例,字符集是AL32UTF8的,但通過pl/sql導入的帶中文的初始腳本,
?
表里面還是顯示亂碼。最后經過查找資料,是oracle客戶端字符集有問題,導致插入數據庫表中文亂碼。
?
設置window系統環境變量: NLS_LANG = SIMPLIFIED ?CHINESE_CHINA.ZHS16GBK ,問題解決。
?
總結:
1.問題原因沒真正明白,就直接下結論。其實,在調整數據庫字符集前,可能設置客戶端字符集問題就可以解決了。目前已經無法驗證了。
2.修改數據庫服務器字符集確實不值得推薦。
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
