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