PostgreSQL: DECLARE CURSOR failed: ERROR: invalid byte sequence for encoding “UTF8″: 0x

來源:互聯網
上載者:User

題外:需要在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) );          // 查看用戶端編碼

            這個文檔很不好懂啊。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.