Following my previous message I have opened the ticket below in the Django documentation:<div><div><br></div><div><a href="https://n1.nylas.com/link/d2a0bd059122da89f2719eb6f9ad46ec429b4f25958dd7012019da459103c54f/0?redirect=https%3A%2F%2Fcode.djangoproject.com%2Fticket%2F28390">https://code.djangoproject.com/ticket/28390</a><br></div><br><signature>Sent from <a href="https://n1.nylas.com/link/d2a0bd059122da89f2719eb6f9ad46ec429b4f25958dd7012019da459103c54f/1?redirect=https%3A%2F%2Fnylas.com%3Fref%3Dn1">Nylas Mail</a>, the best free email app for work</signature></div><img class="n1-open" width="0" height="0" style="border:0; width:0; height:0;" src="https://n1.nylas.com/open/d2a0bd059122da89f2719eb6f9ad46ec429b4f25958dd7012019da459103c54f">
          <div class="gmail_quote nylas-quote nylas-quote-id-ef0e6d451c65b635386d794efbf92eb196c277574d13a42e0081b6fb545e2eb2">
            <br>
            On lug 11 2017, at 11:48 pm, Francesco Bartoli <xbartolone@gmail.com> wrote:
            <br>
            <blockquote class="gmail_quote"
              style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
              Hi devs,<div><div><br /></div><div>I'm facing a common error while uploading an archived shapefile. The file is the commonly used ne_50m_admin_0_countries.</div><div>The error is well known also in django documentation and due to non ascii characters:</div><div><br /></div><div><a href="https://n1.nylas.com/link/d2a0bd059122da89f2719eb6f9ad46ec429b4f25958dd7012019da459103c54f/0?redirect=https%3A%2F%2Fdocs.djangoproject.com%2Fen%2F1.8%2Fref%2Funicode%2F%23files">https://docs.djangoproject.com/en/1.8/ref/unicode/#files</a><br /></div><div><br /></div><div>Unfortunately the recommended solution from the django docs for deployments with apache and mod_wsgi </div><div><br /></div><div><a href="https://n1.nylas.com/link/d2a0bd059122da89f2719eb6f9ad46ec429b4f25958dd7012019da459103c54f/1?redirect=https%3A%2F%2Fdocs.djangoproject.com%2Fen%2F1.8%2Fhowto%2Fdeployment%2Fwsgi%2Fmodwsgi%2F">https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/</a><br /></div><div><br /></div><div>doesn't solve the issue in centos 7. The box has been created while reviewing the installation on that environment as per this PR <a href="https://n1.nylas.com/link/d2a0bd059122da89f2719eb6f9ad46ec429b4f25958dd7012019da459103c54f/2?redirect=https%3A%2F%2Fgithub.com%2FGeoNode%2Fgeonode%2Fpull%2F3168">https://github.com/GeoNode/geonode/pull/3168</a>.</div><div>It can be easily reproduced by adding this view and route within geonode app:</div><div><br /></div><div>#my_views.py</div><div>import locale<br />import sys<br />from django.http import HttpResponse<br /><br />def view_locale(request):<br />    loc_info = "getlocale: " + str(locale.getlocale()) + \<br />        "<br/>getdefaultlocale(): " + str(locale.getdefaultlocale()) + \<br />        "<br/>fs_encoding: " + str(sys.getfilesystemencoding()) + \<br />        "<br/>sys default encoding: " + str(sys.getdefaultencoding())<br />    return HttpResponse(loc_info)<br /></div><div><br /></div><div>#urls.py</div><div>...</div><div>url(r'^locale/$', 'geonode.my_views.view_locale'),<br /></div><div>...</div><div><br /></div><div>Result is always this:</div><div>getlocale: (None, None)<br style="color: rgb(0, 0, 0); font-family: Times; font-size: medium;" />getdefaultlocale(): ('en_US', 'UTF-8')<br style="color: rgb(0, 0, 0); font-family: Times; font-size: medium;" />fs_encoding: UTF-8<br style="color: rgb(0, 0, 0); font-family: Times; font-size: medium;" /><b>sys default encoding: ascii</b><br /></div><div><br /></div><div>Setting the following variables in /etc/sysconfig/httpd and restart as suggested</div><div><br /></div><div>export LANG="en_US.UTF-8"<br />export LC_ALL="en_US.UTF-8"<br /></div><div><br /></div><div>does not change anything in particular the system default encoding which is the reason why the upload is failing.</div><div><br /></div><div>Adding such variables to WSGIDaemonProcess:</div><div><br /></div><div>WSGIDaemonProcess geonode lang='en_US.UTF-8' locale='en_US.UTF-8' python-path=/home/geonode/geonode:/home/geonode/.venvs/geonode/lib/python2.7/site-packages user=apache threads=15 processes=2</div><div><br /></div><div>just affects the getlocale() function while default encoding is unaltered. The only way to affect it would be to add and enforce it:</div><div><br /></div><div>import sys</div><div>reload(sys)<br />sys.setdefaultencoding('utf-8')<br /></div><div><br /></div><div>but this is strongly not recommended and discouraged. More here https://anonbadger.wordpress.com/2015/06/16/why-sys-setdefaultencoding-will-break-code/.</div><div><br /></div><div>Did anyone already encounter this kind of error? Actually I don't have a solution but for sure it's not a bug in geonode code base despite I did not figure out the real source.</div><div><br /></div><div>Any help and idea how to represent it to our users is welcome :)</div><div><br /></div><div>thx</div><div>Francesco</div><br />Sent from <a href="https://n1.nylas.com/link/d2a0bd059122da89f2719eb6f9ad46ec429b4f25958dd7012019da459103c54f/3?redirect=https%3A%2F%2Fnylas.com%3Fref%3Dn1">Nylas Mail</a>, the best free email app for work</div><img width="0" height="0" style="border:0; width:0; height:0;" />
            </blockquote>
          </div>