DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tkzcol
今日帖子: 4
在线用户: 2
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 listenyx (听雨) ★☆☆☆☆ -
普通会员
2013/3/1 11:36:09
标题:
求助,关于MyODBC和UTF8的问题 浏览:1429
加入我的收藏
楼主: 数据库查询出的UTF8数据,偶数字数的UTF8Decode都没问题
奇数的都有问题

用 BytesOf(UTF8Encode('意大利'))出来的是:
230 132 143 229 164 167 229 136 169
而数据库查询的 AsBytes是
230 132 143 229 164 167 229 136 63
位数错了
这是什么回事?

尝试用了D2007 D2012 都一个结果
我使用的是MyODBC 3.51 和 MyODBC 5.11 都不行
尝试过使用:
//    m_AdoConn.Execute('set character_set_client=utf8;');
//    m_AdoConn.Execute('set character_set_connection=utf8;');
//    m_AdoConn.Execute('set character_set_database=latin1;');
//    m_AdoConn.Execute('set character_set_results=utf8;');
//    m_AdoConn.Execute('set character_set_server=latin1;');
//    m_AdoConn.Execute('set collation_connection=utf8_general_ci;');

也尝试过使用
连接字符串增加 charset=UTF8;

都是一个结果
谁能帮忙说明下,真的很急弄了好几天了。头疼死了
----------------------------------------------
-
作者:
男 sbzldlb (边缘人) ★☆☆☆☆ -
盒子活跃会员
2013/3/2 9:01:37
1楼: 这个我以前也出现过,不过是中文,数字没问题,当时在linnux服务器,查出来的数据发现最后有一位特殊字符,转码后,特殊字符没有了,但是最后一位少字符了,我当时的做法是:在查询出来的字符后面,加上几个英文字符,不过英文字符要先转码成utf8,然后进行拼接,解码后,删除最后几个添加的字符
----------------------------------------------
Delphi Android移动开发讨论论坛 老大富翁论坛历史数据搜索引擎
作者:
男 sbzldlb (边缘人) ★☆☆☆☆ -
盒子活跃会员
2013/3/2 9:04:21
2楼: 我当时发布了一个解决方法,不知道适合不适合你

http://www.xszlo.com/article/2012-11-12/7498.html
----------------------------------------------
Delphi Android移动开发讨论论坛 老大富翁论坛历史数据搜索引擎
作者:
男 listenyx (听雨) ★☆☆☆☆ -
普通会员
2013/6/24 17:46:23
3楼: 最终问题解决了,但是解决的方法十分蛋疼。
使用PHP作为中转API接口,去获取数据和写入数据。
因为还有text问题,使用odbc读写text类型utf8字符时问题很多。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行880.8594毫秒 RSS