TField类在繁体环境下读取简体编码的数据的问题 内码转换的问题

gfh21cn 2004-12-20 03:54:33
我使用的是postgre数据库(估计传输过程中是采用的unicode编码方式)

数据库中的数据是GB编码(譬如"软件开发部"),客户端是BIG编码,我要TADOQuery来获得数据,竟然是"(81c8)(81ed)(81bc)(81fe)"这样的东西,而且数据还不全,好像被截掉一样,转换成BIG码,就只剩了"软件"两个字

这个控件好像发现无法转换就默认转换成unicode("(81c8)(81ed)(81bc)(81fe)"),很奇怪

bool __fastcall GetData(void * Buffer, bool NativeFormat = true);
这个函数效果跟AsString一样,获得数据不全

怎么解决这个问题?
...全文
195 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
耙子 2004-12-22
  • 打赏
  • 举报
回复
只能帮你顶了!
问题太偏了,很少有人会遇到的。
gfh21cn 2004-12-22
  • 打赏
  • 举报
回复
看来这个问题又石沉海底了
iceblue007 2004-12-22
  • 打赏
  • 举报
回复
试试把客户端(Win2k及以后)的默任语言,区码都设成简体中文,就可以正常显示简体中文.
如果是Win9X,装一个实时内码转换的软件(magicwin, RichWin etc).

最后没有办法的办法就是把数据库的文件全部编码后再存进去.
耙子 2004-12-22
  • 打赏
  • 举报
回复
得了180分 ,严重的愧疚中......
gfh21cn 2004-12-22
  • 打赏
  • 举报
回复
算了,这个问题就到此为止,看来要解决要花大力气,有可能还涉及到驱动
揭帖
gfh21cn 2004-12-21
  • 打赏
  • 举报
回复
装的是ODBC驱动
用ADO调用的
耙子 2004-12-20
  • 打赏
  • 举报
回复
你的ADO驱动哪儿来的?
gfh21cn 2004-12-20
  • 打赏
  • 举报
回复
pazee(耙子)兄弟也来了
呵呵
苦恼啊,重载估计不可行,TField是自动创建的,如果要重载的话,估计很费周章的
耙子 2004-12-20
  • 打赏
  • 举报
回复
好喜欢这个问题,可惜没环境测试研究。

感觉应该重载哪个读的过程。
lihongxing2002 2004-12-20
  • 打赏
  • 举报
回复
up

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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