Thread: c++ convert wchar_t to UTF-8 for DB

c++ convert wchar_t to UTF-8 for DB

From
"ciifrancesco@tiscali.it"
Date:
Hello all,
I write with reference to the message readable at
http://www.postgresql.org/message-id/4BF575E6.5060203@hogranch.com

I am in the situation described in the message. I have a char* in C++ and i want to put in my db, but most of the non ASCII charachers are broken.
So i used wchar_t, but the following function doesn't exist:

PGresult *PQexec(PGconn *conn, const wchar_t *query);

In the message I referred at the beginning of this e-mail, one the answer is clear about what to do (convert wchar_t to UTF-8), but it's not explained how to do that.
I am doing this on Linux.

Thanks,
Francesco F.





Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV. Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighi sempre gratis: http://freelosophy.tiscali.it/

Re: c++ convert wchar_t to UTF-8 for DB

From
John R Pierce
Date:
On 8/7/2013 8:49 AM, ciifrancesco@tiscali.it wrote:
> http://www.postgresql.org/message-id/4BF575E6.5060203@hogranch.com
> I am in the situation described in the message.

except linux isn't windows, and you're probably not using GBK encoding
for your database, so ... what exactly is the 'same' about your situation?


> I have a char* in C++ and i want to put in my db, but most of the non
> ASCII charachers are broken.
> So i used wchar_t, but the following function doesn't exist:

this char *, what encoding are these nonascii characters in?   what
client_encoding is your database connection using?

wchar is 16 bits per character, which isn't even remotely the same as
char* (8 bits per char), you can't just cast a pointer to one to a
pointer to the other, that would be like mixing integer and char.


--
john r pierce                                      37N 122W
somewhere on the middle of the left coast