Solve all possible MSVC C4819
diff --git a/apps/shared/avifjpeg.c b/apps/shared/avifjpeg.c
index 7e5646b..2196779 100644
--- a/apps/shared/avifjpeg.c
+++ b/apps/shared/avifjpeg.c
@@ -8,7 +8,14 @@
 #include <stdlib.h>
 #include <string.h>
 
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
+#endif
 #include "jpeglib.h"
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
 
 #include "iccjpeg.h"
 
diff --git a/apps/shared/avifpng.c b/apps/shared/avifpng.c
index 9cb1113..a1af290 100644
--- a/apps/shared/avifpng.c
+++ b/apps/shared/avifpng.c
@@ -3,7 +3,14 @@
 
 #include "avifpng.h"
 
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
+#endif
 #include "png.h"
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/contrib/gdk-pixbuf/loader.c b/contrib/gdk-pixbuf/loader.c
index e3bd1b0..3c99a29 100644
--- a/contrib/gdk-pixbuf/loader.c
+++ b/contrib/gdk-pixbuf/loader.c
@@ -69,14 +69,14 @@
     ret = avifDecoderSetIOMemory(decoder, data, size);
     if (ret != AVIF_RESULT_OK) {
         g_set_error(error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
-                    "Couldn’t decode image: %s", avifResultToString(ret));
+                    "Couldn't decode image: %s", avifResultToString(ret));
         return FALSE;
     }
 
     ret = avifDecoderParse(decoder);
     if (ret != AVIF_RESULT_OK) {
         g_set_error(error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
-                    "Couldn’t decode image: %s", avifResultToString(ret));
+                    "Couldn't decode image: %s", avifResultToString(ret));
         return FALSE;
     }
 
@@ -274,7 +274,7 @@
     decoder = avifDecoderCreate();
     if (!decoder) {
         g_set_error_literal(error, GDK_PIXBUF_ERROR, GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY,
-                            "Couldn’t allocate memory for decoder");
+                            "Couldn't allocate memory for decoder");
         return NULL;
     }
 
@@ -358,7 +358,7 @@
                     g_set_error(error,
                                 GDK_PIXBUF_ERROR,
                                 GDK_PIXBUF_ERROR_BAD_OPTION,
-                                "AVIF quality must be a value between 0 and 100; value “%s” could not be parsed.",
+                                "AVIF quality must be a value between 0 and 100; value \"%s\" could not be parsed.",
                                 *viter);
 
                     return FALSE;
@@ -369,7 +369,7 @@
                     g_set_error(error,
                                 GDK_PIXBUF_ERROR,
                                 GDK_PIXBUF_ERROR_BAD_OPTION,
-                                "AVIF quality must be a value between 0 and 100; value “%d” is not allowed.",
+                                "AVIF quality must be a value between 0 and 100; value \"%d\" is not allowed.",
                                 (int)quality);
 
                     return FALSE;
diff --git a/src/codec_aom.c b/src/codec_aom.c
index c2a3eb2..114ece6 100644
--- a/src/codec_aom.c
+++ b/src/codec_aom.c
@@ -11,6 +11,11 @@
 #pragma clang diagnostic ignored "-Wused-but-marked-unused"
 #endif
 
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
+#endif
+
 #if defined(AVIF_CODEC_AOM_ENCODE)
 #include "aom/aom_encoder.h"
 #include "aom/aomcx.h"
@@ -21,6 +26,10 @@
 #include "aom/aomdx.h"
 #endif
 
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
 #ifdef __clang__
 #pragma clang diagnostic pop
 
diff --git a/src/codec_dav1d.c b/src/codec_dav1d.c
index 054f846..1b306fd 100644
--- a/src/codec_dav1d.c
+++ b/src/codec_dav1d.c
@@ -4,7 +4,9 @@
 #include "avif/internal.h"
 
 #if defined(_MSC_VER)
+#pragma warning(push)
 #pragma warning(disable : 4201) // nonstandard extension used: nameless struct/union
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
 #endif
 #if defined(__clang__)
 #pragma clang diagnostic push
@@ -14,6 +16,9 @@
 #if defined(__clang__)
 #pragma clang diagnostic pop
 #endif
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
 
 #include <string.h>
 
diff --git a/src/codec_libgav1.c b/src/codec_libgav1.c
index 5b21c9c..14fb6c4 100644
--- a/src/codec_libgav1.c
+++ b/src/codec_libgav1.c
@@ -3,7 +3,14 @@
 
 #include "avif/internal.h"
 
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
+#endif
 #include "gav1/decoder.h"
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
 
 #include <string.h>
 
diff --git a/src/codec_rav1e.c b/src/codec_rav1e.c
index c672b8f..2e457b6 100644
--- a/src/codec_rav1e.c
+++ b/src/codec_rav1e.c
@@ -3,8 +3,17 @@
 
 #include "avif/internal.h"
 
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
+#endif
+
 #include "rav1e/rav1e.h"
 
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
 #include <string.h>
 
 struct avifCodecInternal
diff --git a/src/codec_svt.c b/src/codec_svt.c
index 434dae1..fc8183f 100644
--- a/src/codec_svt.c
+++ b/src/codec_svt.c
@@ -3,10 +3,19 @@
 
 #include "avif/internal.h"
 
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
+#endif
+
 #include "svt-av1/EbSvtAv1.h"
 
 #include "svt-av1/EbSvtAv1Enc.h"
 
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
+
 #include <string.h>
 
 #define STR_HELPER(x) #x
diff --git a/src/colr.c b/src/colr.c
index c0a84ee..3c08038 100644
--- a/src/colr.c
+++ b/src/colr.c
@@ -143,10 +143,10 @@
     //
     // If a coded image has no associated colour property, the default property is defined as having
     // colour_type equal to 'nclx' with properties as follows:
-    // –   colour_primaries equal to 1,
-    // –   transfer_characteristics equal to 13,
-    // –   matrix_coefficients equal to 5 or 6 (which are functionally identical), and
-    // –   full_range_flag equal to 1.
+    // -   colour_primaries equal to 1,
+    // -   transfer_characteristics equal to 13,
+    // -   matrix_coefficients equal to 5 or 6 (which are functionally identical), and
+    // -   full_range_flag equal to 1.
     // Only if the colour information property of the image matches these default values, the colour
     // property may be omitted; all other images shall have an explicitly declared colour space via
     // association with a property of this type.
diff --git a/src/obu.c b/src/obu.c
index c039a89..9613ee0 100644
--- a/src/obu.c
+++ b/src/obu.c
@@ -1,6 +1,6 @@
 /*
- * Copyright © 2018, VideoLAN and dav1d authors
- * Copyright © 2018, Two Orioles, LLC
+ * Copyright (C) 2018, VideoLAN and dav1d authors
+ * Copyright (C) 2018, Two Orioles, LLC
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/src/read.c b/src/read.c
index 844d46a..4ab17ec 100644
--- a/src/read.c
+++ b/src/read.c
@@ -883,7 +883,7 @@
     // Validate grid image size and tile size.
     //
     // HEIF (ISO/IEC 23008-12:2017), Section 6.6.2.3.1:
-    //   The tiled input images shall completely “cover” the reconstructed image grid canvas, ...
+    //   The tiled input images shall completely "cover" the reconstructed image grid canvas, ...
     if (((firstTile->image->width * grid->columns) < grid->outputWidth) ||
         ((firstTile->image->height * grid->rows) < grid->outputHeight)) {
         return AVIF_FALSE;
diff --git a/src/reformat_libyuv.c b/src/reformat_libyuv.c
index 273e7ad..67b0078 100644
--- a/src/reformat_libyuv.c
+++ b/src/reformat_libyuv.c
@@ -23,7 +23,16 @@
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wstrict-prototypes" // "this function declaration is not a prototype"
 #endif
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable : 4819) // The file contains a character that cannot be represented in the current code page
+#endif
+
 #include <libyuv.h>
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif
 #if defined(__clang__)
 #pragma clang diagnostic pop
 #endif