diff --git a/Makefile.griffin b/Makefile.griffin
index bddb023b6b..70177a627c 100644
--- a/Makefile.griffin
+++ b/Makefile.griffin
@@ -710,6 +710,7 @@ else ifneq (,$(findstring windows_msvc2015,$(platform)))
CXX = cl.exe
LD = link.exe
+ PLATCFLAGS += -utf-8
PLATCFLAGS += -D_WIN32 -D__STDC_CONSTANT_MACROS -D_MBCS
PLATCFLAGS += -D__i686__ -D__MMX__ -D__SSE__ -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINDOWS -DHAVE_CC_RESAMPLER -DHAVE_GL_SYNC -DHAVE_GLSL -DHAVE_IMAGEVIEWER -DHAVE_LANGEXTRA -DHAVE_OPENGL -DHAVE_SHADERPIPELINE -DHAVE_UPDATE_ASSETS -DWIN32 -DHAVE_EASTEREGG
LDFLAGS += shell32.lib user32.lib gdi32.lib comdlg32.lib winmm.lib ole32.lib iphlpapi.lib
diff --git a/Makefile.msvc b/Makefile.msvc
index dc99920fa7..5eee104a72 100644
--- a/Makefile.msvc
+++ b/Makefile.msvc
@@ -123,7 +123,7 @@ endif
FLAGS += -nologo -MP
FLAGS += -Gm- -Zc:inline -fp:precise -Zc:forScope -GR- -Gd -Oi -volatile:iso
#FLAGS += -Zc:wchar_t -Zp16 -Z7
-#FLAGS += -utf-8
+FLAGS += -utf-8
#FLAGS += -source-charset:utf-8
CXXFLAGS += $(CFLAGS) -TP -EHsc
diff --git a/intl/msg_hash_ar.c b/intl/msg_hash_ar.c
index c237c6e534..3b71318668 100644
--- a/intl/msg_hash_ar.c
+++ b/intl/msg_hash_ar.c
@@ -25,7 +25,7 @@
#include "../configuration.h"
#include "../verbosity.h"
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
#pragma warning(disable: 4566)
diff --git a/intl/msg_hash_ar.h b/intl/msg_hash_ar.h
index 127892e311..da004dfb84 100644
--- a/intl/msg_hash_ar.h
+++ b/intl/msg_hash_ar.h
@@ -1,4 +1,10 @@
-MSG_HASH(
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+MSG_HASH(
MSG_COMPILER,
"Compiler"
)
diff --git a/intl/msg_hash_chs.c b/intl/msg_hash_chs.c
index 3073da2669..0a66acae8e 100644
--- a/intl/msg_hash_chs.c
+++ b/intl/msg_hash_chs.c
@@ -24,10 +24,10 @@
#include "../configuration.h"
#include "../verbosity.h"
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
-#pragma warning( disable : 4566 )
+#pragma warning(disable:4566)
#endif
int menu_hash_get_help_chs_enum(enum msg_hash_enums msg, char *s, size_t len)
diff --git a/intl/msg_hash_chs.h b/intl/msg_hash_chs.h
index d499e2b770..459aaa332d 100644
--- a/intl/msg_hash_chs.h
+++ b/intl/msg_hash_chs.h
@@ -1,4 +1,10 @@
-#ifdef HAVE_LAKKA_SWITCH
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
"GPU 超频"
diff --git a/intl/msg_hash_cht.c b/intl/msg_hash_cht.c
index a35a38cd0e..9fcf5bd203 100644
--- a/intl/msg_hash_cht.c
+++ b/intl/msg_hash_cht.c
@@ -24,10 +24,10 @@
#include "../configuration.h"
#include "../verbosity.h"
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
-#pragma warning( disable : 4566 )
+#pragma warning(disable:4566)
#endif
int menu_hash_get_help_cht_enum(enum msg_hash_enums msg, char *s, size_t len)
diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h
index 1e8d1ea807..4a36d41a6b 100644
--- a/intl/msg_hash_cht.h
+++ b/intl/msg_hash_cht.h
@@ -1,4 +1,10 @@
-MSG_HASH(
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+MSG_HASH(
MSG_COMPILER,
"編譯器"
)
diff --git a/intl/msg_hash_de.c b/intl/msg_hash_de.c
index 1a0e7fa67e..b9a1697bfa 100644
--- a/intl/msg_hash_de.c
+++ b/intl/msg_hash_de.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for Libretro.
+/* RetroArch - A frontend for Libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2016-2019 - Brad Parker
* Translation currently maintained by Lothar Serra Mari [rootfather]
@@ -26,6 +26,12 @@
#include "../configuration.h"
#include "../verbosity.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_de_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_de.h b/intl/msg_hash_de.h
index 649e573b26..9bf7f6026d 100644
--- a/intl/msg_hash_de.h
+++ b/intl/msg_hash_de.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
diff --git a/intl/msg_hash_el.c b/intl/msg_hash_el.c
index fc2c26292a..4e5c6a1d28 100644
--- a/intl/msg_hash_el.c
+++ b/intl/msg_hash_el.c
@@ -27,6 +27,12 @@
#ifdef RARCH_INTERNAL
#include "../configuration.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_el_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_el.h b/intl/msg_hash_el.h
index b2d57d9c3e..192d584821 100644
--- a/intl/msg_hash_el.h
+++ b/intl/msg_hash_el.h
@@ -1,4 +1,10 @@
-MSG_HASH(
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+MSG_HASH(
MSG_COMPILER,
"Μεταγλωττιστής"
)
diff --git a/intl/msg_hash_eo.c b/intl/msg_hash_eo.c
index b7d67fcdda..cbef637f29 100644
--- a/intl/msg_hash_eo.c
+++ b/intl/msg_hash_eo.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
@@ -22,6 +22,12 @@
#include "../configuration.h"
#include "../msg_hash.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_eo_enum(enum msg_hash_enums msg, char *s, size_t len)
{
switch (msg)
diff --git a/intl/msg_hash_eo.h b/intl/msg_hash_eo.h
index 790a3ceea7..9a93730381 100644
--- a/intl/msg_hash_eo.h
+++ b/intl/msg_hash_eo.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
MSG_HASH(
MSG_COMPILER,
"Compiler"
diff --git a/intl/msg_hash_es.c b/intl/msg_hash_es.c
index 7cf9685353..a557cab4ba 100644
--- a/intl/msg_hash_es.c
+++ b/intl/msg_hash_es.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2018 - Alfredo Monclus
*
@@ -28,6 +28,12 @@
#pragma clang diagnostic ignored "-Winvalid-source-encoding"
#endif
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_es_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h
index e5a3841886..09c1166ed0 100644
--- a/intl/msg_hash_es.h
+++ b/intl/msg_hash_es.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
diff --git a/intl/msg_hash_fr.c b/intl/msg_hash_fr.c
index c2dd36e5d1..4b8651082c 100644
--- a/intl/msg_hash_fr.c
+++ b/intl/msg_hash_fr.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2014-2017 - Jean-André Santoni
* Copyright (C) 2016-2019 - Brad Parker
@@ -29,6 +29,12 @@
#ifdef RARCH_INTERNAL
#include "../configuration.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_fr_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_fr.h b/intl/msg_hash_fr.h
index d0e24eac67..c21e3fc68b 100644
--- a/intl/msg_hash_fr.h
+++ b/intl/msg_hash_fr.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
diff --git a/intl/msg_hash_it.c b/intl/msg_hash_it.c
index 50a72b7c05..9a64487305 100644
--- a/intl/msg_hash_it.c
+++ b/intl/msg_hash_it.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
@@ -23,6 +23,12 @@
#include "../msg_hash.h"
#include "../configuration.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_it_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_it.h b/intl/msg_hash_it.h
index 4d536328c4..c96de31dab 100644
--- a/intl/msg_hash_it.h
+++ b/intl/msg_hash_it.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
diff --git a/intl/msg_hash_ja.c b/intl/msg_hash_ja.c
index 230cf993ff..e126a1962e 100644
--- a/intl/msg_hash_ja.c
+++ b/intl/msg_hash_ja.c
@@ -25,10 +25,10 @@
#include "../configuration.h"
#include "../verbosity.h"
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
-#pragma warning(disable: 4566)
+#pragma warning(disable:4566)
#endif
int menu_hash_get_help_jp_enum(enum msg_hash_enums msg, char *s, size_t len)
diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h
index d4b4930e9e..0a98cc23fe 100644
--- a/intl/msg_hash_ja.h
+++ b/intl/msg_hash_ja.h
@@ -1,6 +1,7 @@
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
#endif
MSG_HASH(
diff --git a/intl/msg_hash_ko.c b/intl/msg_hash_ko.c
index 29b45397fd..a853dc88cc 100644
--- a/intl/msg_hash_ko.c
+++ b/intl/msg_hash_ko.c
@@ -25,10 +25,10 @@
#include "../configuration.h"
#include "../verbosity.h"
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
-#pragma warning(disable: 4566)
+#pragma warning(disable:4566)
#endif
int menu_hash_get_help_ko_enum(enum msg_hash_enums msg, char *s, size_t len)
diff --git a/intl/msg_hash_ko.h b/intl/msg_hash_ko.h
index 46db4aee26..aa4c0bbaff 100644
--- a/intl/msg_hash_ko.h
+++ b/intl/msg_hash_ko.h
@@ -1,4 +1,10 @@
-MSG_HASH(
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+MSG_HASH(
MSG_COMPILER,
"컴파일러"
)
diff --git a/intl/msg_hash_nl.c b/intl/msg_hash_nl.c
index d350ea8414..823fb98b98 100644
--- a/intl/msg_hash_nl.c
+++ b/intl/msg_hash_nl.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
@@ -21,6 +21,12 @@
#include "../msg_hash.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_nl_enum(enum msg_hash_enums msg, char *s, size_t len)
{
int ret = 0;
diff --git a/intl/msg_hash_nl.h b/intl/msg_hash_nl.h
index be9887997e..b25655dc48 100644
--- a/intl/msg_hash_nl.h
+++ b/intl/msg_hash_nl.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
MSG_HASH(
MSG_COMPILER,
"Compiler"
diff --git a/intl/msg_hash_pl.c b/intl/msg_hash_pl.c
index 1ad5fa1a2b..e7c35164eb 100644
--- a/intl/msg_hash_pl.c
+++ b/intl/msg_hash_pl.c
@@ -17,10 +17,10 @@
#include "../msg_hash.h"
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
-#pragma warning( disable: 4566 )
+#pragma warning(disable:4566)
#endif
int menu_hash_get_help_pl_enum(enum msg_hash_enums msg, char *s, size_t len)
diff --git a/intl/msg_hash_pl.h b/intl/msg_hash_pl.h
index ebf1a6c89b..f422c5da32 100644
--- a/intl/msg_hash_pl.h
+++ b/intl/msg_hash_pl.h
@@ -1,4 +1,10 @@
-MSG_HASH(
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+MSG_HASH(
MSG_COMPILER,
"Kompilator"
)
diff --git a/intl/msg_hash_pt_br.c b/intl/msg_hash_pt_br.c
index 86cb5487fd..0218497f6f 100644
--- a/intl/msg_hash_pt_br.c
+++ b/intl/msg_hash_pt_br.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2016-2019 - Brad Parker
*
@@ -27,6 +27,12 @@
#ifdef RARCH_INTERNAL
#include "../configuration.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_pt_br.h b/intl/msg_hash_pt_br.h
index d7c5605e14..b55bbc3d44 100644
--- a/intl/msg_hash_pt_br.h
+++ b/intl/msg_hash_pt_br.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
diff --git a/intl/msg_hash_pt_pt.c b/intl/msg_hash_pt_pt.c
index 416f592a56..d5df686ee6 100644
--- a/intl/msg_hash_pt_pt.c
+++ b/intl/msg_hash_pt_pt.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
@@ -23,6 +23,12 @@
#include "../msg_hash.h"
#include "../../configuration.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_pt_pt_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_pt_pt.h b/intl/msg_hash_pt_pt.h
index 9b6e2fede6..90bdde5433 100644
--- a/intl/msg_hash_pt_pt.h
+++ b/intl/msg_hash_pt_pt.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
MSG_HASH(
MSG_COMPILER,
"Compilador"
diff --git a/intl/msg_hash_ru.c b/intl/msg_hash_ru.c
index 9a48e61b7e..b7f9f9fa66 100644
--- a/intl/msg_hash_ru.c
+++ b/intl/msg_hash_ru.c
@@ -15,6 +15,12 @@
#include "../msg_hash.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
const char *msg_hash_to_str_ru(enum msg_hash_enums msg)
{
switch (msg)
diff --git a/intl/msg_hash_ru.h b/intl/msg_hash_ru.h
index 7252b37afe..7edb2694ab 100644
--- a/intl/msg_hash_ru.h
+++ b/intl/msg_hash_ru.h
@@ -1,6 +1,7 @@
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
#endif
MSG_HASH(
diff --git a/intl/msg_hash_tr.c b/intl/msg_hash_tr.c
index ea39b4026e..41ab3a3fe2 100644
--- a/intl/msg_hash_tr.c
+++ b/intl/msg_hash_tr.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2016-2019 - Brad Parker
*
@@ -27,6 +27,12 @@
#ifdef RARCH_INTERNAL
#include "../configuration.h"
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
int menu_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len)
{
settings_t *settings = config_get_ptr();
diff --git a/intl/msg_hash_tr.h b/intl/msg_hash_tr.h
index cbefc60667..33bbc081b4 100644
--- a/intl/msg_hash_tr.h
+++ b/intl/msg_hash_tr.h
@@ -1,3 +1,9 @@
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
#ifdef HAVE_LAKKA_SWITCH
MSG_HASH(
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
diff --git a/intl/msg_hash_vn.c b/intl/msg_hash_vn.c
index 1769dd2b88..0a69ddfd71 100644
--- a/intl/msg_hash_vn.c
+++ b/intl/msg_hash_vn.c
@@ -1,4 +1,4 @@
-/* RetroArch - A frontend for libretro.
+/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2016-2019 - Brad Parker
*
@@ -25,9 +25,10 @@
#include "../configuration.h"
#include "../verbosity.h"
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
#endif
int menu_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len)
diff --git a/intl/msg_hash_vn.h b/intl/msg_hash_vn.h
index 0eb51fa021..995b1054c9 100644
--- a/intl/msg_hash_vn.h
+++ b/intl/msg_hash_vn.h
@@ -1,4 +1,10 @@
-MSG_HASH(
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+MSG_HASH(
MSG_COMPILER,
"Compiler"
)
diff --git a/menu/menu_cbs.c b/menu/menu_cbs.c
index 002e5039fe..8c7f0e6da2 100644
--- a/menu/menu_cbs.c
+++ b/menu/menu_cbs.c
@@ -173,7 +173,7 @@ struct key_desc key_descriptors[RARCH_MAX_KEYS] =
{RETROK_BREAK, "Break"},
{RETROK_MENU, "Menu"},
{RETROK_POWER, "Power"},
- {RETROK_EURO, "€"},
+ {RETROK_EURO, {0xE2, 0x82, 0xAC, 0x00}}, /* "€" */
{RETROK_UNDO, "Undo"},
{RETROK_OEM_102, "OEM-102"}
};
diff --git a/menu/widgets/menu_osk_utf8_pages.h b/menu/widgets/menu_osk_utf8_pages.h
index 2ff1f9397a..d90100b484 100644
--- a/menu/widgets/menu_osk_utf8_pages.h
+++ b/menu/widgets/menu_osk_utf8_pages.h
@@ -14,9 +14,10 @@
* If not, see .
*/
-#if defined(_MSC_VER) && !defined(_XBOX)
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
/* https://support.microsoft.com/en-us/kb/980263 */
#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
#endif
static const char *symbols_page1_grid[] = {
diff --git a/pkg/msvc/msvc-2015/RetroArch-msvc2015.vcxproj b/pkg/msvc/msvc-2015/RetroArch-msvc2015.vcxproj
index a342d8ee05..1688487c05 100644
--- a/pkg/msvc/msvc-2015/RetroArch-msvc2015.vcxproj
+++ b/pkg/msvc/msvc-2015/RetroArch-msvc2015.vcxproj
@@ -197,6 +197,7 @@
Fast
StreamingSIMDExtensions
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
@@ -217,6 +218,7 @@
Fast
StreamingSIMDExtensions
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
@@ -238,6 +240,7 @@
/bigobj
Fast
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
@@ -257,6 +260,7 @@
CompileAsCpp
Fast
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
@@ -281,6 +285,7 @@
StreamingSIMDExtensions
true
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
@@ -306,6 +311,7 @@
StreamingSIMDExtensions
true
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
@@ -331,6 +337,7 @@
Fast
true
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
@@ -355,6 +362,7 @@
Fast
true
OldStyle
+ /utf-8 %(AdditionalOptions)
Console
diff --git a/pkg/msvc/msvc-2017/RetroArch-msvc2017.vcxproj b/pkg/msvc/msvc-2017/RetroArch-msvc2017.vcxproj
index ed8deec4b1..22f0f12594 100644
--- a/pkg/msvc/msvc-2017/RetroArch-msvc2017.vcxproj
+++ b/pkg/msvc/msvc-2017/RetroArch-msvc2017.vcxproj
@@ -556,6 +556,8 @@
Fast
StreamingSIMDExtensions
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -576,7 +578,8 @@
Fast
StreamingSIMDExtensions
OldStyle
- /bigobj %(AdditionalOptions)
+ 4819
+ /bigobj /utf-8 %(AdditionalOptions)
Console
@@ -598,6 +601,8 @@
Fast
StreamingSIMDExtensions
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -619,6 +624,8 @@
Fast
StreamingSIMDExtensions
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -640,6 +647,8 @@
Fast
StreamingSIMDExtensions
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -661,6 +670,8 @@
Fast
StreamingSIMDExtensions
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -682,6 +693,8 @@
Fast
StreamingSIMDExtensions
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -703,6 +716,8 @@
Fast
StreamingSIMDExtensions
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -723,6 +738,8 @@
CompileAsCpp
Fast
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -742,6 +759,8 @@
CompileAsCpp
Fast
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -762,6 +781,8 @@
CompileAsCpp
Fast
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -782,6 +803,8 @@
CompileAsCpp
Fast
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -806,6 +829,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -831,6 +856,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -857,6 +884,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -883,6 +912,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -909,6 +940,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -935,6 +968,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -961,6 +996,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -987,6 +1024,8 @@
StreamingSIMDExtensions
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -1012,6 +1051,8 @@
Fast
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -1037,6 +1078,8 @@
Fast
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -1062,6 +1105,8 @@
Fast
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -1087,6 +1132,8 @@
Fast
true
OldStyle
+ 4819
+ /utf-8 %(AdditionalOptions)
Console
@@ -1911,4 +1958,4 @@
-
+
\ No newline at end of file
diff --git a/ui/drivers/qt/shaderparamsdialog.cpp b/ui/drivers/qt/shaderparamsdialog.cpp
index 6d884f954f..23b2ef8ab1 100644
--- a/ui/drivers/qt/shaderparamsdialog.cpp
+++ b/ui/drivers/qt/shaderparamsdialog.cpp
@@ -1,4 +1,4 @@
-#include
+#include
#include
#include
#include
@@ -37,6 +37,12 @@ extern "C" {
}
#endif
+#if defined(_MSC_VER) && !defined(_XBOX) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
enum
{
SHADER_PRESET_SAVE_CORE = 0,