Mitsuhiko has written extensively about Py3 unicode problems, e.g. <a href="http:&#x2F;&#x2F;lucumr.pocoo.org&#x2F;2014&#x2F;5&#x2F;12&#x2F;everything-about-unicode&#x2F;" rel="nofollow">http:&#x2F;&#x2F;lucumr.pocoo.org&#x2F;2014&#x2F;5&#x2F;12&#x2F;everything-about-unicode&#x2F;</a><p>I think a lot of it boils down to, sometimes you <i>really really</i> don&#x27;t want to care about unicode.  Linux filenames are one thorny issue - Linux thinks of them as strings of bytes, and a tool is broken if it can&#x27;t also deal with them that way.  Py3 makes it very difficult to do that correctly.  There are also issues with stdin&#x2F;out being opened as unicode vs byte streams.<p>For web development, the &quot;unicode sandwich&quot; (<a href="http:&#x2F;&#x2F;nedbatchelder.com&#x2F;text&#x2F;unipain.html" rel="nofollow">http:&#x2F;&#x2F;nedbatchelder.com&#x2F;text&#x2F;unipain.html</a>) works great in my experience.  However, I can see his point that for some kinds of tasks, Py3 is unambiguously a downgrade.