postgresqlのC++での文字エンコード
postgresql 9.1を文字コードUTF8でインストールして
windows 7 professional sp1 x64で
Visual Studio 2010 C++ MFCプロジェクトでアクセスするプログラムを作成しているのですが、
libpqとodbcのPostgreSQL ODBC Driver(UNICODE) x86、いずれでも、下記のように一部がCStringA(Shift_JIS?)で操作するプログラムになっています。
あまり気にすることではないのかもしれないのですが、
UTF8をSHIFT_JISで扱おうとすると足りない特殊文字などが出てこないかと懸念しています。
libpqとodbcのPostgreSQL ODBC Driver(UNICODE) x86、または別のものでもよいので
MFC C++ で UTF8で操作することはできないのでしょうか。
またはそのような懸念は無用なのでしょうか。
どなたかご教授よろしくお願い致します。
------------------------------------------
libpq
result = PQexec (connection,CStringA(sql));
if (result == NULL)
{
st.Format( "%s\n", PQerrorMessage (connection));
OutputDebugString(CString(st));
}
------------------------------------------
odbc
CStringA param = "ああいう";
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR,
param.GetLength() / 2, 0, (SQLTCHAR*)((LPCSTR)param), 0, NULL);