Re: libpq - characterset encoding error from selecting BYTEA
От | CN |
---|---|
Тема | Re: libpq - characterset encoding error from selecting BYTEA |
Дата | |
Msg-id | 1458052807.2085089.549773330.2CD59643@webmail.messagingengine.com обсуждение исходный текст |
Ответ на | Re: libpq - characterset encoding error from selecting BYTEA (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-interfaces |
On Tue, Mar 15, 2016, at 09:57 PM, Tom Lane wrote: > > PGconn* first switches to "BIG5" client encoding: > > PQexec(conn,"SET CLIENT_ENCODING TO BIG5"); > > > version 1: > > > const char *pValues[]={"5","6"}; > > PGresult *r=PQexecParams(conn,"SELECT c3::BYTEA FROM t1 WHERE c1=$1 AND > > c2=$2",2,NULL,pValues,NULL,NULL,1); > > > What is strange is that above PQexecParams() works in one portion of my > > program but in another portion it yields the following error: > > > ERROR: character with byte sequence 0x98 0xe1 in encoding "BIG5" has no > > equivalent in encoding "UTF8" > > Given the way the complaint is phrased, the problem is with data going > *to* the server, not *from* the server. I don't think the returned bytea > is your issue at all; it must be either in the SQL query string or the > parameter values being sent. Probably you should review how you're > setting up the parameter strings. Thanks a lot for your always prompt and professional help! I must have made the unforgivable mistake - miss using temporary, like so: std::ostringstream oss1,oss2; oss1 << 5; oss2 << 6; const char *pValues[]={oss1.str().c_str(),oss2.str().c_str()}; PGresult *r=PQexecParams(conn,"SELECT c3 FROM t1 WHERE c1=$1 AND c2=$2",2,NULL,pValues,NULL,NULL,1); Humm... Maybe it is my compiler's issue. Maybe I should take a break now. Anyway, the error seems to be gone with the following slightly modified version: std::ostringstream oss1,oss2; oss1 << 5; oss2 << 6; std::string s1(oss1.str()),s2(oss2.str()); const char *pValues[]={s1.c_str(),s2.c_str()}; PGresult *r=PQexecParams(conn,"SELECT c3 FROM t1 WHERE c1=$1 AND c2=$2",2,NULL,pValues,NULL,NULL,1); Best Regards, CN -- http://www.fastmail.com - Or how I learned to stop worrying and love email again
В списке pgsql-interfaces по дате отправления: