Fix File::OpenUri on Windows.

This is follow-up to c5c18a0ace7e4cb6f827ad3a5b80fae15d3e7b3f.

Bug: dartbug.com/33793
Change-Id: Ic281c11ea5a2c4e10cdccb0617a12b6dfbda1c68
Reviewed-on: https://dart-review.googlesource.com/64243
Reviewed-by: Zach Anderson <zra@google.com>
diff --git a/runtime/bin/file_win.cc b/runtime/bin/file_win.cc
index 9c486cc..d7d5b3f 100644
--- a/runtime/bin/file_win.cc
+++ b/runtime/bin/file_win.cc
@@ -282,7 +282,13 @@
 }
 
 File* File::OpenUri(Namespace* namespc, const char* uri, FileOpenMode mode) {
-  Utf8ToWideScope uri_w(uri);
+  UriDecoder uri_decoder(uri);
+  if (uri_decoder.decoded() == NULL) {
+    SetLastError(ERROR_INVALID_NAME);
+    return NULL;
+  }
+
+  Utf8ToWideScope uri_w(uri_decoder.decoded());
   if (!UrlIsFileUrlW(uri_w.wide())) {
     return FileOpenW(uri_w.wide(), mode);
   }