diff --git a/Source/Core/DiscIO/DiscIO.vcxproj b/Source/Core/DiscIO/DiscIO.vcxproj
index 6dd24ddd44..722aae2040 100644
--- a/Source/Core/DiscIO/DiscIO.vcxproj
+++ b/Source/Core/DiscIO/DiscIO.vcxproj
@@ -44,7 +44,7 @@
false
StaticLibrary
- MultiByte
+ Unicode
StaticLibrary
@@ -54,7 +54,7 @@
false
StaticLibrary
- MultiByte
+ Unicode
StaticLibrary
diff --git a/Source/Core/DiscIO/Src/DriveBlob.cpp b/Source/Core/DiscIO/Src/DriveBlob.cpp
index e69f8ff34c..2638f3fac4 100644
--- a/Source/Core/DiscIO/Src/DriveBlob.cpp
+++ b/Source/Core/DiscIO/Src/DriveBlob.cpp
@@ -16,6 +16,7 @@
// http://code.google.com/p/dolphin-emu/
#include "DriveBlob.h"
+#include "StringUtil.h"
namespace DiscIO
{
@@ -23,12 +24,9 @@ namespace DiscIO
DriveReader::DriveReader(const char *drive)
{
#ifdef _WIN32
- char path[MAX_PATH];
- strncpy(path, drive, 3);
- path[2] = 0;
- sprintf(path, "\\\\.\\%s", drive);
SectorReader::SetSectorSize(2048);
- hDisc = CreateFile(path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
+ auto const path = UTF8ToTStr(std::string("\\\\.\\") + drive);
+ hDisc = CreateFile(path.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL);
if (hDisc != INVALID_HANDLE_VALUE)
{