r19200 - gnucash/trunk/src/backend/dbi - Fix #616100 - Incorrect character set used in MySQL backend
Phil Longstaff
plongstaff at code.gnucash.org
Sat May 22 17:29:01 EDT 2010
Author: plongstaff
Date: 2010-05-22 17:29:00 -0400 (Sat, 22 May 2010)
New Revision: 19200
Trac: http://svn.gnucash.org/trac/changeset/19200
Modified:
gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
Log:
Fix #616100 - Incorrect character set used in MySQL backend
Use "SET NAMES 'utf8'" so that mysql uses utf8 for communication and all char sets.
Modified: gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c
===================================================================
--- gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2010-05-22 21:25:51 UTC (rev 19199)
+++ gnucash/trunk/src/backend/dbi/gnc-backend-dbi.c 2010-05-22 21:29:00 UTC (rev 19200)
@@ -516,6 +516,17 @@
if ( success )
{
+ dbi_result dresult;
+
+ /* Set connection char set to utf8 */
+ dresult = dbi_conn_queryf( be->conn, "SET NAMES 'utf8'" );
+ if ( dresult == NULL )
+ {
+ PERR( "Unable to set connection char set" );
+ qof_backend_set_error( qbe, ERR_BACKEND_SERVER_ERR );
+ goto exit;
+ }
+
if ( be->sql_be.conn != NULL )
{
gnc_sql_connection_dispose( be->sql_be.conn );
@@ -523,6 +534,7 @@
be->sql_be.conn = create_dbi_connection( GNC_DBI_PROVIDER_MYSQL, qbe, be->conn );
}
be->sql_be.timespec_format = MYSQL_TIMESPEC_STR_FORMAT;
+
exit:
g_free( protocol );
g_free( host );
More information about the gnucash-changes
mailing list