<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px">As a general rule of thumb: don't cast to other types if there is no<br></span><span style="font-size:12.8px">requirement, that will help to prevent such issues and make the upcoming<br></span><span style="font-size:12.8px">upgrade to python 3 much easier.</span></blockquote><div>Yes, this should be Python 2.xx's developer haiku: <b><span style="color:rgb(51,51,51);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';line-height:21px">Bytes on the outside, unicode on the inside. Encode/decode at the edges.</span> </b>It's a bad habit in Python 2.xx to cast to str when the string probably could contain accented chars (e.g doing <b>str(layer.source()</b>). But in Python 3, str is unicode, most of problem would probably be gone. For some strategies, perhaps what we did in InaSAFE could be useful, see the 3rd comment in this PR: <a href="https://github.com/inasafe/inasafe/pull/1674">https://github.com/inasafe/inasafe/pull/1674</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 12, 2016 at 9:35 AM, Matthias Kuhn <span dir="ltr"><<a href="mailto:matthias@opengis.ch" target="_blank">matthias@opengis.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Minoru<br>
<span class=""><br>
On 07/12/2016 03:01 AM, Minoru Akagi wrote:<br>
> Hi,<br>
><br>
> Just a quick note for python plugin devs.<br>
><br>
> I received an error report related to QGis.QGIS_VERSION constant [1].<br>
> In QGIS 2.16, QGis.GIS_RELEASE_NAME and QGis.QGIS_VERSION constants<br>
> have been changed to unicode type. I guess that the change is<br>
> necessary for unicode release name support.<br>
<br>
</span>I don't think the type has changed. Before python just converted it<br>
silently because the conversion of a pure ascii unicode string was trivial.<br>
Compare:<br>
<br>
>>> str(u'Essen')<br>
'Essen'<br>
>>> str(u'Nødebo')<br>
Traceback (most recent call last):<br>
  File "<stdin>", line 1, in <module><br>
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf8' in<br>
position 1: ordinal not in range(128)<br>
<br>
As a general rule of thumb: don't cast to other types if there is no<br>
requirement, that will help to prevent such issues and make the upcoming<br>
upgrade to python 3 much easier.<br>
<span class="HOEnZb"><font color="#888888"><br>
Matthias<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Qgis-developer mailing list<br>
<a href="mailto:Qgis-developer@lists.osgeo.org">Qgis-developer@lists.osgeo.org</a><br>
List info: <a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><p><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">-------------------</span></b></p><b>Akbar Gumbira </b></div><div><b style="font-size:12.8px"><a href="http://www.akbargumbira.com" target="_blank">www.akbargumbira.com</a></b></div></div></div></div></div>
</div>