您的位置:首页 > 数据库 > Oracle

Linux下用OCCI读取windows下的oracle数据库中文乱码解决

2014-07-15 09:25 337 查看

1. 环境和要解决的问题

(1) oracle数据库在window系统下, server端字符集为AMERICAN_AMERICAN.ZHS16GBK

要求将oracle数据库中的数据插入到linux下的MySQL数据库, MySQL的字符集为utf8

(2) 此时用sqlplus和occi读取oracle数据库中的中文都会出现乱码

2. 解决

(1) sqlplus正确显示中文: export NLS_LANG=AMERICAN_AMERICAN.AL32UTF8
(2) OCCI正确显示中文: Environment env_ = Environment::createEnvironment("AL32UTF8", "AL32UTF8");
解决的思路是: 不要管server端的字符编码, 只要搞清楚现在所用机器的字符编码, 在链接数据库时, 将编码方式设置为此编码即可,则在读取数据时,会自动将server端的字符编码转换成链接数据库时使用的编码, 例如: ubuntu下的默认字符编码为utf8, mysql的字符编码也为utf8, 则我们的解决方案如上所示。

Reference

[1] Oracle字符集的查看查询和Oracle字符集的设置修改
[2] createEnvironment()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐