Am 2018-09-21 16:11, schrieb John Ralls:
On Sep 21, 2018, at 1:43 AM, Geert Janssens <geert.gnuc...@kobaltwit.be> wrote:

Op vrijdag 21 september 2018 10:02:02 CEST schreef c.holterm...@gmx.de:
Dear developers,

thinking about moving from python2 to 3 I wonder how character
encoding in the backend is done. Can you point me to some docs
about that ? Which encoding in sqlite, mysql, xml ? Where does
encoding take place, where is it being controlled ? I don't need
an extensive answer, just some pointers where to start looking.

From memory I believe we force our gnucash data to be utf-8 at all times. As this is also the encoding used by glib2 internally there is no need for extra
encoding functionality in the backends.

While not supported users could make changes to the xml data outside of the application and insert invalid utf-8 in that case. To protect against that we have one function to validate strings in the xml data file while loading/
saving. It's called checked_char_cast and is located in:
https://github.com/Gnucash/gnucash/blob/maint/libgnucash/backend/xml/gnc-xml-helper.cpp

I don't think we have something similar in the db backends. I think we rely on
the dbms to handle this for us.

I'm writing much in conditional terms as I don't know this part in gnucash
very thoroughly. John may correct me if I misunderstood.

Right. checked_char_cast isn’t needed in the SQL backends because the
database engines enforce utf-8 for us.

I *think* for python the only issue is making sure that every path
between python and GnuCash is bridged as utf-8.

Guile is another matter, but it’s not germane to this topic.

Regards,
John Ralls

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Thank you for the info,

regards,

Christoph Holtermann
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to