ORCL+VC生僻字显示乱码问题

dianhui 2015-06-08 11:09:41
继续追问生僻字显示问题。上一提问没有得到解决:http://bbs.csdn.net/topics/391049344
数据库为ORCL,别人用C#和PB提取数据时都能正确显示生僻字,而我用VC6提取到的数据中有生僻字时,该生僻字显示为乱码。
获取数据的一段代码如下:
//获取项目的姓名
varCounter.lVal=3;
var_value=pORecordset->GetFields()->GetItem(varCounter)->GetValue();
CString s_Name=VariantToCString(var_value);
获取到的s_Name 中如果有一生僻字,生僻字(不是整个字符串)就乱码了。感觉这段代码应该没有问题,因为我搭建了一个SQLSERVER2003的数据做测试,同样是该段代码获取到的生僻字是正常的,没有乱码。

请大家帮帮忙,是不是系统要做什么设置或是上段代码要做什么更改,该问题已经困难很久了,感激不尽啊~~~~~~!
...全文
322 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
dianhui 2015-06-11
  • 打赏
  • 举报
回复
引用 21 楼 cutmelon 的回复:
从你这个描述来看,应该不是编码的问题,如果是编码问题整个串都不会正常。 我感觉像你从数据库里取出来的时候,这个字符被辨识成控制符了,然后数据库转了一道手给你的程序。 建议你升级数据库连接驱动或者用oci来试试。
服务器端用的是ORCL10g,而我开发平台所装的为ORCL8i,不知道你说的数据库连接驱动升级是不是将8i升到10g,还是别的。下面是我连接数据库时用到的连接字符串。不知道是不是有问题。

		m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
		_bstr_t strConnect="Provider=OraOLEDB.Oracle.1;Password=h;Persist Security Info=True;User ID=wangp;Data Source=DBTP";//设置连接字符串,必需是BSTR型或者_bstr_t类型
		m_pConnection->Open(strConnect,"wangp","h",adModeUnknown);
schlafenhamster 2015-06-11
  • 打赏
  • 举报
回复
而 HS16GBK 是 ZHS16CGB231280 的升级版本
schlafenhamster 2015-06-11
  • 打赏
  • 举报
回复
应该使用ZHS16GBK ZHS16GBK包含了ZHS16CGB231280
笨笨仔 2015-06-11
  • 打赏
  • 举报
回复
你可以使用API进行编码转换试试
dianhui 2015-06-11
  • 打赏
  • 举报
回复
现在我用Debug查看了一下,这是取出数据后转换成CString时中Debug里有一个错误。
要取出的这个字段内容为:赵洑波
dianhui 2015-06-11
  • 打赏
  • 举报
回复
引用 14 楼 wxhxj0268 的回复:
打个程序员能听懂的比方,汉字编码就象地址,字库就是存放显示的字模,如果二者对应,计算机从地址处就可以取出显示的字模,如果不对应显示就乱了。 不清楚你的具体情况,只能建议你检查软件中设置的字体是否支持扩展汉字库。
字库应该是没有问题的,因为同样的代码,我建了一个SQL 2003的测试库,将连接指向该测试库,生僻字却可以正常显示了,这说明我的开发环境应该没有问题。
笨笨仔 2015-06-11
  • 打赏
  • 举报
回复
打个程序员能听懂的比方,汉字编码就象地址,字库就是存放显示的字模,如果二者对应,计算机从地址处就可以取出显示的字模,如果不对应显示就乱了。 不清楚你的具体情况,只能建议你检查软件中设置的字体是否支持扩展汉字库。
cutmelon 2015-06-11
  • 打赏
  • 举报
回复
从你这个描述来看,应该不是编码的问题,如果是编码问题整个串都不会正常。 我感觉像你从数据库里取出来的时候,这个字符被辨识成控制符了,然后数据库转了一道手给你的程序。 建议你升级数据库连接驱动或者用oci来试试。
dianhui 2015-06-11
  • 打赏
  • 举报
回复
引用 18 楼 schlafenhamster 的回复:
应该使用ZHS16GBK ZHS16GBK包含了ZHS16CGB231280
关键是数据的编码不能更改,PB和C#取数据都正常显示,VC不行啊。
dianhui 2015-06-10
  • 打赏
  • 举报
回复
引用 11 楼 wxhxj0268 的回复:
首先你必须清楚,显示一个汉字涉及到2个问题: 1、汉字的编码;2、汉字的字库。 你的编码方式正确了还必须要有字库的支持,否则就只能显示乱码。
不明白,请大师明言啊,再申明一下,我电脑上用PB和C#的软件取数据时,那个字段上的生僻字是可以正常显示的,VC6生僻字就乱码。这是不是说明我电脑上的字库是正常的呢?
dianhui 2015-06-10
  • 打赏
  • 举报
回复
引用 10 楼 schlafenhamster 的回复:
NLS_CHARACTERSET 是 ZHS16CGB231280 找到该字库
不明白,请大师明言啊,再申明一下,我电脑上用PB和C#的软件取数据时,那个字段上的生僻字是可以正常显示的,VC6生僻字就乱码。
笨笨仔 2015-06-10
  • 打赏
  • 举报
回复
首先你必须清楚,显示一个汉字涉及到2个问题: 1、汉字的编码;2、汉字的字库。 你的编码方式正确了还必须要有字库的支持,否则就只能显示乱码。
schlafenhamster 2015-06-10
  • 打赏
  • 举报
回复
NLS_CHARACTERSET 是 ZHS16CGB231280 找到该字库
dianhui 2015-06-10
  • 打赏
  • 举报
回复
求版主现身啊……
酱油党 2015-06-09
  • 打赏
  • 举报
回复
都转成UNICODE的吧。
dianhui 2015-06-09
  • 打赏
  • 举报
回复
继续等待……
dianhui 2015-06-09
  • 打赏
  • 举报
回复

这个是数据库的字符集参数。
继续等待……
jiqiang01234 2015-06-08
  • 打赏
  • 举报
回复
存入数据库的汉字是什么编码?读取的时候就用相同的编码 int MultiByteToWideChar( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar)
dianhui 2015-06-08
  • 打赏
  • 举报
回复
引用 1 楼 jiqiang01234 的回复:
八成是编码的问题,如果是生僻字,GB2312编码已经不满足了,需要GBK编码
问题方向应该差不多是,我要解决方案啊,怎么这个问题就这么难嘛?
jiqiang01234 2015-06-08
  • 打赏
  • 举报
回复
八成是编码的问题,如果是生僻字,GB2312编码已经不满足了,需要GBK编码
加载更多回复(2)
课程简介:Oracle 11G 完整的课程体系,从安装到入门到项目实战开发,整个学习过程,都以实践操作为主,大量的案例,实例,作业,来保证学习,练习,直到具备数据分析师,掌握SQL部分,能达到数据库开发工程师的能力要求与水平,SQL查询,数据库对象,索引,视图,分区表,优化等等实现从事数据分析师所具备的的数据处理能力,结合存储过程开发与使用,能更好的结合业务需求来完成对指标的统计与分析。 课程收益你将获得:    数据分析师SQL实战    掌握Oracle数据库全部技能    数据分析师入门操作    数据库开发工程师    独立开发数据库需求    SQL纯实战应用    具备数据处理,数据存储技能    具备数据仓库架构师思维与应用 1、建议每天保证2个小时学习时间,加以练习实操2、每节课后的练习案例动手实践,方能记忆深刻3、学完知识点后举一反三,应用到实际工作中 课程亮点:Oracle全集包含服务器搭建,客户端使用,入门步骤,SQL各查询实现,条件查询,分组,聚合函数,正则表达式,高级函数,连接查询,多表查询,子查询,数据插入,更新,删除,数据库对象,如表,视图,索引,同义词,分区表,存储过程,存储过程大量案例,项目开发等等内容丰富,各知识点都配置相应的作业及解答过程,真正实例与案例操作,学会Oracle各种操作,满足实际业务工作需要,真正做到事半功倍,以实践工作出发完成各知识点的学习与应用,掌握数据库相关的技能 适合人群: 数据分析师,数据库开发人员,技能提升,数据库应用,在校学生,零基础入门,项目开发,初,中,高级数据库开发工 程师,ETL开发,数据仓库架构,数据运维,企业开发,数据管理,数据质量等。 老师介绍:SUN老师高级数据分析专家,有着丰富的BI项目开发工作经验,具备数仓各方面的数据治理,指标开发,业务梳理,口径开发,曾相继在中国移动,亚信,文思任职高级项目开发,专业领域BI,数据分析,维度与指标展示,数仓流程开发,可视化等相关技术 ,有完备的数据分析理论知识与应用,在数据分析,数据处理,数据可视化数据建模等应用,指标统计,维度分析,多维分析等有深入研究,具备更严谨的实践技能操作。 课程大纲:

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧