Encoding issue in python 2.7 with py 1.4.32
Hello,

After an update from version `1.4.31` to `1.4.32`, the following sample test started failing:

```python
# coding: utf-8
from __future__ import unicode_literals


def test_non_ascii_dir_path():
    from py.path import local
    from tempfile import gettempdir

    path_a = gettempdir()
    path_b = 'ação'

    directory = local(path_a).join(path_b)
    directory.ensure(dir=1)
```

Output:
```
py.test test_path.py
============================= test session starts =============================
platform win32 -- Python 2.7.12, pytest-2.9.3.dev0, py-1.4.32, pluggy-0.3.1
rootdir: D:\tmp\path, inifile:
collected 1 items

test_path.py F

================================== FAILURES ===================================
___________________________ test_non_ascii_dir_path ___________________________

    def test_non_ascii_dir_path():
        from py.path import local
        from tempfile import gettempdir

        path_a = gettempdir()
        path_b = 'a├º├úo'

        directory = local(path_a).join(path_b)
>       directory.ensure(dir=1)

test_path.py:13:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
D:\Miniconda\envs\steve-env\lib\site-packages\py\_path\local.py:524: in ensure
    return p._ensuredirs()
D:\Miniconda\envs\steve-env\lib\site-packages\py\_path\local.py:503: in _ensuredirs
    if parent == self:
D:\Miniconda\envs\steve-env\lib\site-packages\py\_path\local.py:166: in __eq__
    s2 = fspath(other)
D:\Miniconda\envs\steve-env\lib\site-packages\py\_path\common.py:28: in fspath
    return path_type.__fspath__(path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = local(u'c:\\users\\tnobrega\\appdata\\local\\temp\\a\xe7\xe3o')

    def __fspath__(self):
>       return str(self)
E       UnicodeEncodeError: 'ascii' codec can't encode characters in position 38-39: ordinal not in range(128)
```

It looks like the relevant code was added in ef37a065f520d5122a (ping @aragilar, please have a look if you can), as an effort to backport `fspath` to pythons before 3.6. I am not sure how to fix this issue without breaking the py2 interface, and would like to start this discussion.

Thank you, and thanks for all your work.
diff --git a/CHANGELOG b/CHANGELOG
index 2adad320..c39fb9b3 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -4,6 +4,8 @@
 - avoid imports in calls to py.path.local().fnmatch(). Thanks Andreas Pelme for
   the PR.
 
+- fix issue106: Naive unicode encoding when calling fspath() in python2. Thanks Tiago Nobrega for the PR.
+
 1.4.32
 ====================================================================
 
diff --git a/py/_path/common.py b/py/_path/common.py
index 4af88dcd..0260e761 100644
--- a/py/_path/common.py
+++ b/py/_path/common.py
@@ -379,7 +379,7 @@ newline will be removed from the end of each line. """
         return self.strpath == str(other)
 
     def __fspath__(self):
-        return str(self)
+        return self.strpath
 
 class Visitor:
     def __init__(self, fil, rec, ignore, bf, sort):
diff --git a/testing/path/test_local.py b/testing/path/test_local.py
index 69981d8a..829de969 100644
--- a/testing/path/test_local.py
+++ b/testing/path/test_local.py
@@ -143,6 +143,15 @@ class TestLocalPath(common.CommonFSTests):
     def test_eq_with_none(self, path1):
         assert path1 != None
 
+    def test_eq_non_ascii_unicode(self, path1):
+        path2 = path1.join(u'temp')
+        path3 = path1.join(u'ação')
+        path4 = path1.join(u'ディレクトリ')
+
+        assert path2 != path3
+        assert path2 != path4
+        assert path4 != path3
+
     def test_gt_with_strings(self, path1):
         path2 = path1.join('sampledir')
         path3 = str(path1.join("ttt"))
@@ -249,6 +258,12 @@ class TestLocalPath(common.CommonFSTests):
         assert t == newfile
         assert newfile.check(dir=1)
 
+    def test_ensure_non_ascii_unicode(self, tmpdir):
+        newfile = tmpdir.join(u'ação',u'ディレクトリ')
+        t = newfile.ensure(dir=1)
+        assert t == newfile
+        assert newfile.check(dir=1)
+
     def test_init_from_path(self, tmpdir):
         l = local()
         l2 = local(l)
['CHANGELOG', 'testing/path/test_local.py', 'py/_path/common.py']