Fixed bug in _fileio.c and test_pep277. On Windows IOError.filename was not set because the name is stored in widename.
diff --git a/Modules/_fileio.c b/Modules/_fileio.c
index 8469bb2..f02c5ef 100644
--- a/Modules/_fileio.c
+++ b/Modules/_fileio.c
@@ -267,7 +267,11 @@
 			self->fd = open(name, flags, 0666);
 		Py_END_ALLOW_THREADS
 		if (self->fd < 0 || dircheck(self) < 0) {
+#ifdef MS_WINDOWS
+			PyErr_SetFromErrnoWithUnicodeFilename(PyExc_IOError, widename);
+#else
 			PyErr_SetFromErrnoWithFilename(PyExc_IOError, name);
+#endif
 			goto error;
 		}
 	}