First of all, this should work. If you have a Pervasive database with data stored through the DataFlex PSQL driver (DFBTRDRV), you can access this data with ODBC_DRV (embedded SQL) using the “Pervasive ODBC Unicode Interface”.

You need to set it up right, and I had to bypass some quirks to get it right.

When storing data through DataFlex PSQL driver (DFBTRDRV) this data is stored as OEM data.

When approaching this data through ODBC, you have to tell the ODBC interface that the data is stored as OEM.
You can do this in Pervasive Control Center by setting the code page for the database to an OEM code page (I used CP850)

In Pervasive Control Center, ask the properties of the database/ Change code page/Set Database code page to CP850.
Click image for larger version. 

Name:	PSQLCodePageSetup.PNG 
Views:	21 
Size:	50.1 KB 
ID:	15023

Important: Before changing the code page in PCC, close all connections to the database. Close any DataFlex programs, including the Studio!
If you don’t, the ODBC driver does not see the change. Close the connections BEFORE changing the code page, otherwise it still does not work.
(I had a hard time figuring this out. It totally confused me…)

Once you have the code page set, you can use the “Pervasive ODBC Unicode Interface” to access the data through ODBC.
The “Pervasive ODBC Unicode Interface” will now see the data is stored as OEM, and will automatically convert it to Unicode.
In the case of DataFlex 20 it will be converted to utf-8 when you approach this through ODBC (embedded SQL).

The conversion will also go the other way. If you write data through ODBC/embedded SQL, it will be converted from utf-8 to OEM and stored as OEM in the database. Then it will also be readable again through DFBTRDRV.