From 6b9c7075f40ba55d4eb717420345bb996153e78f Mon Sep 17 00:00:00 2001 From: Phil Longstaff Date: Sat, 22 May 2010 21:29:00 +0000 Subject: [PATCH] Fix #616100 - Incorrect character set used in MySQL backend Use "SET NAMES 'utf8'" so that mysql uses utf8 for communication and all char sets. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19200 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/backend/dbi/gnc-backend-dbi.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/backend/dbi/gnc-backend-dbi.c b/src/backend/dbi/gnc-backend-dbi.c index c11ca717be..1e729e75f9 100644 --- a/src/backend/dbi/gnc-backend-dbi.c +++ b/src/backend/dbi/gnc-backend-dbi.c @@ -516,6 +516,17 @@ gnc_dbi_mysql_session_begin( QofBackend* qbe, QofSession *session, 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 @@ gnc_dbi_mysql_session_begin( QofBackend* qbe, QofSession *session, 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 );