[Qgis-developer] encoding in custom python functions

Lauri Kajan lauri.kajan at gmail.com
Thu Oct 22 00:41:40 PDT 2015


Hi all,

I'm trying to figure out some encoding problems when using custom python
expression functions.

I'm using python functions for defining some label texts. I need use some
special characters like ä and ö.

When a new file is created in function editor the file is encoded in my
system encoding cp1252. At least the ä is coded to 0xe4 if I check that
with hex-editor.
Let the custom function just be
@qgsfunction(args='auto', group='Custom')
def encodingtest(feature, parent):
return 'ä'

This displays on a map like 'ä'
It seems that the file is converted to utf-8 before execution and the ä is
then coded to 0xc3 0xa4. Now QGIS still tries to interpret this as cp1252
and then displays this as 'ä'.

It doesn't help to define the ä as unicode like u'ä' because QGIS still
sees the ä as 0xc3 0xa4 and think that it is in cp1252.

The only way to resolve this in the code at least that I have found is to
use
return 'ä'.decode('utf-8')
This works on QGIS but the file can't be executed elsewhere (IDE) since the
file is truly in cp1252 and 0xe4 can't be decoded using utf-8.


Does anyone else confirm this and have I understood right the problem?
Should I file a bug report?


Thanks,

-Lauri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20151022/e050ffdc/attachment.html>


More information about the Qgis-developer mailing list