[Qgis-developer] encoding in custom python functions
lauri.kajan at gmail.com
Thu Oct 22 05:25:15 PDT 2015
The u'ä' works if I tell the file encoding using your snippet
# -*- coding: utf-8 -*-
But this works only in qgis and is not a correct way.
I cannot then debug my function in any IDE cause the file is encoded
differently than it says.
On Thu, Oct 22, 2015 at 1:37 PM, Alexandre Neto <senhor.neto at gmail.com>
> Have you tried to put the following line in the top of the file?
> # -*- coding: utf-8 -*-
> Lauri Kajan <lauri.kajan at gmail.com> escreveu no dia qui, 22/10/2015 às
>> 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
>> 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?
>> Qgis-developer mailing list
>> Qgis-developer at lists.osgeo.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Qgis-developer