加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL: DECLARE CURSOR failed: ERROR: invalid byte seque

发布时间:2020-12-13 17:56:13 所属栏目:百科 来源:网络整理
导读:题外:需要在VC中使用PostgreSQL,本来使用的是ODBC,因为感觉配置比较麻烦,就想使用其他方法。开始看到可以使用libpq++,但是那东西在7点几的版本后就没了;别人又说使用libpqxx,但是那几个Makefile比较难弄,好像是需要特定的VS版本来编译,所以从简就用

题外:需要在VC中使用PostgreSQL,本来使用的是ODBC,因为感觉配置比较麻烦,就想使用其他方法。开始看到可以使用libpq++,但是那东西在7点几的版本后就没了;别人又说使用libpqxx,但是那几个Makefile比较难弄,好像是需要特定的VS版本来编译,所以从简就用了libpq,因为只用到简单的功能。

问题描述:PostgreSQL: DECLARE CURSOR failed: ERROR: invalid byte sequence for encoding "UTF8": 0xc9e3

产生原因:因为我们用到了中文表名,所以select语句中也有了中文,在构建strSQL的时候用的是Cstring,Cstring是ascii编码的,即便加了_T("")也是UNICODE编码,所以必须要转换成UTF8编码的才能PQexec(),或者把表名改成英文的也行。

BTW: int nRes = PQsetClientEncoding(conn,"SQL_ASCII"); // 设置客户端编码
const char * chCode = pg_encoding_to_char( PQclientEncoding( conn) ); // 查看客户端编码

这个文档很不好懂啊。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读