|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2013/3/1 11:36:09 |
标题: |
求助,关于MyODBC和UTF8的问题 |
浏览:1431 |
|
加入我的收藏 |
楼主: |
数据库查询出的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;
都是一个结果 谁能帮忙说明下,真的很急弄了好几天了。头疼死了
----------------------------------------------
- |
作者: |
|
2013/3/2 9:01:37 |
1楼: |
这个我以前也出现过,不过是中文,数字没问题,当时在linnux服务器,查出来的数据发现最后有一位特殊字符,转码后,特殊字符没有了,但是最后一位少字符了,我当时的做法是:在查询出来的字符后面,加上几个英文字符,不过英文字符要先转码成utf8,然后进行拼接,解码后,删除最后几个添加的字符
----------------------------------------------
Delphi Android移动开发讨论论坛 老大富翁论坛历史数据搜索引擎
|
作者: |
|
2013/3/2 9:04:21 |
2楼: |
我当时发布了一个解决方法,不知道适合不适合你
http://www.xszlo.com/article/2012-11-12/7498.html
----------------------------------------------
Delphi Android移动开发讨论论坛 老大富翁论坛历史数据搜索引擎
|
作者: |
|
2013/6/24 17:46:23 |
3楼: |
最终问题解决了,但是解决的方法十分蛋疼。 使用PHP作为中转API接口,去获取数据和写入数据。 因为还有text问题,使用odbc读写text类型utf8字符时问题很多。
----------------------------------------------
-
|
|