Chinaunix首页 | 论坛 | 博客
  • 博客访问: 375129
  • 博文数量: 26
  • 博客积分: 522
  • 博客等级: 中士
  • 技术积分: 329
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-14 13:49
文章分类

全部博文(26)

文章存档

2015年(2)

2012年(7)

2011年(16)

2009年(1)

我的朋友

分类: Oracle

2011-10-30 12:54:56

问题重现:
     安装的是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插入数据时,数据库会寻找系统中的字符编码,然可已系统的编码方式插入数据库。
阅读(45072) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~