interbase 查询中文乱码_Teamcenter 中文字符显示问题

abb9a3270df5ec4f13b0916c059d4f19.png

    在安装Teamcenter的时候出现了字符存储问题。字符到不是乱码,而是以奇怪的字母和数字进行存储。

开始以为是Oracle的配置问题,所以

1. 检测Oracle的database设置,输入

 select *  from nls_database_parameters where 

parameter='NLS_CHARACTERSET'

返回 ZHS16GBK,这说明Oracle服务器端的字符集配置为正确设置。

2. 接着输入

select userenv('language') from dual

 返回 AMERICAN _ AMERICA. ZHS16GBK

这也不影响结果,前面两个参数只影响界面提示信息和货币日期格式等。

这说明我在创建database选择的字符集ZHS16GBK并没有错误。

3. 查询client端的字符集

打开注册表,查询“NLS_LANG” ,发现它在

HKEY_LOCAL_MACHINE\Software\Oracle\HOME0下,修改其value为:

SIMPLIFIED CHINESE_CHINA.ZHS16GBK

打开Teamcenter,发现还是不能正确显示。当时安装Teamcenter时,选择的默认字符集为EUN_CN,

GB2312,这个也应该能正确显示中文才是。

后来在Oracle的数据库里找到了对应的存储表格,发现存储

进database时字符已经变成了乱码。研究了半天,可能是

Teamcenter调用了操作系统Windows的API,而本机的Windows是英文版的,安装的中文语言包的支持。这样可能在调用时系统的函数时采用的字符就不一样了。

本想绝望地安装中文操作系统时,找到了一个解决办法。

4. 在操作系统里设置系统环境变量

 NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

然后Teamcenter里的内容就能正常显示了。

解决办法太莫名其妙了,暂且记之。

顺便,oracle里用sql加Worksheet 读出的中文也是乱码,但直接查看表格时却是正确的,这个的解决办法也很简单。

打开

 $ORACLE_HOME\sysman\config\dbappscfg.properties  文件,

找到注释掉的这一句 #  

 SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 

添加一句

SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 

即可。

2baf23e1a94751a18bc7bf0662a8b62f.png 191b9e9fbfa13f1d31987962e07dd555.png感谢19629的付出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值