查看: 2943|回复: 8

数据表中文显示乱码

[复制链接]
论坛徽章:
0
发表于 2014-2-17 16:04 | 显示全部楼层 |阅读模式
数据库server的主机操作系统是中文版win2003,装的是单机版oracle 10g (10.2.0.4) 。db 服务端oracle的字符集是America.zhs16gbk 我把这台主机暂且叫 S1
客户机的操作系统是中文版win8 ,装的是oracle11g 客户端软件。客户端的字符集也是America.zhs16gbk 把客户机叫S2
问题是这样的同样的一个保存sql的文件。文件内容如下:
insert into TEMP_CAMERA_ID (id, ms)
values ('8494', '枫林路爱民路口');
insert into TEMP_CAMERA_ID (id, ms)
values ('8495', '枫林路荣湾路口');
insert into TEMP_CAMERA_ID (id, ms)
values ('8496', '枫林路财院路口');
insert into TEMP_CAMERA_ID (id, ms)
values ('8497', '枫林路金星路口');
insert into TEMP_CAMERA_ID (id, ms)
values ('8498', '枫林路望岳路口');
insert into TEMP_CAMERA_ID (id, ms)
values ('8499', '桐梓坡路望月路口');
insert into TEMP_CAMERA_ID (id, ms)
values ('8500', '枫林路玉兰路口');
insert into TEMP_CAMERA_ID (id, ms)
values ('8501', '枫林路平川路口');
commit;
在主机s1上执行后, 执行select * from temp_camera_id 看到中文字段"ms"的内容是乱码;
但在主机S2上执行后,执行select * from temp_camera_id 看到中文字段"ms"的内容是正常的
请各位高手看看,问题到底处在什么地方!

论坛徽章:
0
 楼主| 发表于 2014-2-17 16:12 | 显示全部楼层
这和保持sql语句文件的中文字符编码有关吗??
还是和操作系统的中文系统有关
请各位高手指教!!!

使用道具 举报

回复
论坛徽章:
1
比亚迪
日期:2013-10-23 14:04:37
发表于 2014-2-17 16:46 | 显示全部楼层
lotus_ruan 发表于 2014-2-17 16:12
这和保持sql语句文件的中文字符编码有关吗??
还是和操作系统的中文系统有关
请各位高手指教!!!

你在服务器端是通过什么工具查询的?sqlplus?检查并设置服务器端操作系统的NLS_LANG

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2014-2-17 17:01 | 显示全部楼层
blueiceyoung 发表于 2014-2-17 16:46
你在服务器端是通过什么工具查询的?sqlplus?检查并设置服务器端操作系统的NLS_LANG

使用pl/sql develop 7.0 d:\aa.png
NLS_LANG=AMERICA.zhs16gbk

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2014-2-18 11:18 | 显示全部楼层
lotus_ruan 发表于 2014-2-17 17:01
使用pl/sql develop 7.0
NLS_LANG=AMERICA.zhs16gbk

字符显示的问题真是很麻烦啊,请各位大师想想办法!

使用道具 举报

回复
论坛徽章:
3
2010新春纪念徽章
日期:2010-03-01 11:19:53ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41优秀写手
日期:2014-04-01 06:00:12
发表于 2014-2-18 16:46 | 显示全部楼层
1 你用editplus 或其他 编辑器看一下 你这个SQL的编码,不要是utf8的,要是ansi的

2 每台机器的注册表设置 NLS_LANG=AMERICA.zhs16gbk

使用道具 举报

回复
论坛徽章:
1
优秀写手
日期:2014-02-20 06:00:12
发表于 2014-2-18 17:43 | 显示全部楼层
lotus_ruan 发表于 2014-2-17 16:12
这和保持sql语句文件的中文字符编码有关吗??
还是和操作系统的中文系统有关
请各位高手指教!!!

先查一下你两台服务器数据库本身的字符集是否相同(select userenv('language') from dual,如果不同的话应该是第二台不支持简体中文.

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2014-2-21 17:08 | 显示全部楼层
xieyunzheng 发表于 2014-2-18 17:43
先查一下你两台服务器数据库本身的字符集是否相同(select userenv('language') from dual,如果不同的话 ...

两台机器查询结果是一样的
都是 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2014-2-21 17:10 | 显示全部楼层
lotus_ruan 发表于 2014-2-21 17:08
两台机器查询结果是一样的
都是 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

如何把这个参数改为AMERICAN_AMERICA.zhs16gbk

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表